2014-02-13 59 views
0

我有一個包含選擇列表的變量,那麼我需要篩選並找到具有值爲'EventType'的dependsOn屬性的那些變量。如何在JQuery中通過屬性查找元素?

我試過以下,但沒有找到該選擇並返回0:

var selects = $("select"); 
var count = selects.find("[dependsOn='EventType']").length 
alert(count); 

我寫的作品,但不是有一個更簡單的方法下面?

var dependents = []; 
     selectLists.each(function() { 

      var dep = $(this).attr('dependsOn'); 
      if (dep === undefined) return; 

      dependents.push(dep.val()); 
     }); 
+1

你能張貼您的HTML? – Anton

+1

''''在'.....'後面缺少';' –

+0

'alert($(「select [dependsOn = EventType]」)。 – gvee

回答

5

如果該屬性是實際select標籤,只是做:

var selects = $("select[dependsOn='EventType']"); 

雖然dependsOn似乎並不像一個有效的屬性。檢查自定義data-*屬性以具有完全有效的HTML。

0

如果使用data屬性

那麼你可以做:

var selects = $("select"); 
selects.find('[data-dependsOn="EventType"]').length; 
alert(count); 

find()來選擇子元素,如果你想針對select元素,你可以使用:

var selects = $('select[data-dependsOn="EventType"]').length; 
alert(count); 
+0

試過了,沒有工作 –

+0

@TheLight確保在你的HTML標記中你的'select'元素有這個屬性'data-dependsOn =「EventType」' – Felix

0

嘗試與你的瀏覽器的控制檯(我使用鉻),並使用此:

selects = $("select[dependsOn='EventType']"); 

它對我來說工作得很好。 希望它有幫助!

3

參見the documentation for find

獲取後裔在當前匹配的元素集合中的每個元件中,通過選擇器,jQuery對象,或元件的過濾

你想用filter

減少匹配的元素集合到那些選擇匹配或傳遞給函數的測試的。

selects.filter("[dependsOn='EventType']").length 

或者,只是把條件在初始選擇:

$("select[dependsOn='EventType']").length;