jQuery选择器查询

时间:2009-10-08 11:31:23

标签: jquery selector

我需要一些肝脏才能找到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(),我不认为这是安全的,因为我的其余代码。还有更好的方法吗?

有人可以帮忙吗?

4 个答案:

答案 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)})