2013-08-29 1 views
1

Я привязки данных путем добавления html5 DATA- пользовательского атрибута к элементуJQuery найти все элементы DATA-

<div id="fred"> 
<input type="text" data-fld="Field1" value="10" /> 
<input type="text" data-fld="Field2" value="11" /> 
<input type="text" data-fld="Field3" value="12" /> 
<input type="text" value="13" /> 
</div> 

Я пытаюсь найти все элементы, которые имеют данные-FLD указанного.

col = div.find("[data-fld!='']"); 

Но не повезло с тем, что я пробовал до этого.

Для этого используется jsfiddle. http://jsfiddle.net/p2KsP/4/

ответ

1

Вы только должны использовать Has Attribute selector:

var col = $("#fred").find("[data-fld]"); 
console.log(col.length); // 3 

Attribute Not Equal selector не будет работать, так как он соответствует элементы, которые либо не имеют указанного атрибута или действительно имеют указанный атрибут, но не с определенным значением. Это означает, что [data-fld!=''] будет соответствовать всем элементам.

+0

Спасибо, да, что, похоже, работает. Можете ли вы объяснить, почему! = '' Не работает? Просто интересно и учиться! – user2728841

+0

@user, это потому, что '[data-fld! = '']' Не делает то, что вы думаете. Я попытался уточнить этот момент в своем ответе. –

+0

Отлично, спасибо снова – user2728841