запрос селектора jQuery - PullRequest
1 голос
/ 08 октября 2009

Мне нужен HEPL, чтобы найти селектор для 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">

Мне нужно для каждого из этих текстовых полей выполнить поиск и найти, существует ли значение = 1.

Мне нужна помощь селектора (что-то вроде $(input[name=text[]]).each())

Я не хочу использовать $(input[name^='text']).each(), я не думаю, что это безопасно, потому что остальная часть моего кода. Есть ли лучший способ?

Может кто-нибудь помочь?

Ответы [ 4 ]

2 голосов
/ 08 октября 2009

Заверните их в контейнер:

<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 голосов
/ 08 октября 2009

Я бы использовал класс заполнителя таким образом:

<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()
0 голосов
/ 08 октября 2009

Используйте map() с чем-то вроде:

$("input[type=text]").map(function() {if ($(this).val() == 1) return $(this)})
0 голосов
/ 08 октября 2009

Почему бы не сделать:

$('input[name="^text["]').filter('[name$="]"]')

Я не знаю, сможете ли вы сделать это более конкретным, чем без использования функции фильтра. Я бы, наверное, согласился с тем, что просто имя начинается с текста, и я обязательно использовал бы другие идентификаторы в других местах.

...