我需要一些肝脏才能找到jQuery的选择器。
我有这些文本框:
<input type="text" name="text[1]" value="1,2,3">
<input type="text" name="text[2]" value="1,8,9">
<input type="text" name="text[3]" value="7,4,3">
我需要为每个这些文本框进行搜索并查找value = 1是否存在。
我需要选择器的帮助(类似$(input[name=text[]]).each()
)
我不想使用$(input[name^='text']).each()
,我不认为这是安全的,因为我的其余代码。还有更好的方法吗?
有人可以帮忙吗?
答案 0 :(得分:2)
我会使用占位符类:
<input class="myselector" type="text" name="text[1]" value="1,2,3">
<input class="myselector" type="text" name="text[2]" value="1,8,9">
<input class="myselector" type="text" name="text[3]" value="7,4,3">
然后这只是一个问题:
$(input.myselector).each()
答案 1 :(得分:2)
将它们包装在容器中:
<div id="container">
<input type="text" name="text[1]" value="1,2,3">
<input type="text" name="text[2]" value="1,8,9">
<input type="text" name="text[3]" value="7,4,3">
</div>
并选择它们,就像这样。
$("#container > input").each(function(i, element){
$element = $(element);
if($element.val().indexOf('1') >= 0){
$element.css("background-color", "yellow");
}
});
甚至可以像这样写一个自定义选择器:
$.extend($.expr[':'], {
contains1: function(e) {
return $(e).val().indexOf('1') >= 0;
}
});
$("#container > input:contains1").css("background-color", "yellow");
答案 2 :(得分:0)
为什么不这样做:
$('input[name="^text["]').filter('[name$="]"]')
我不知道你是否能够使用过滤器的功能来使它更具体。我可能会对正确的名称以文本开头,并确保在其他地方使用不同的ID。
答案 3 :(得分:0)
使用map()
之类的内容:
$("input[type=text]").map(function() {if ($(this).val() == 1) return $(this)})