Селектор jQuery для динамического входного значения - PullRequest
1 голос
/ 20 июня 2011

Как вы можете использовать :contain() в поле ввода, например,

#inputfield содержит динамическое значение 5,938, и я хочу использовать $("#inputfield:contains('5.938')").

Но это победилоне работает, я предоставил демо на jsFiddle .

Я не хочу использовать if(element.val() == '5.938'), потому что мне нужен временный селектор вместо выполнения оператора if/else.

Я также не имею в виду использование [value=5.938], потому что значениеизменится.

Ответы [ 5 ]

3 голосов
/ 20 июня 2011

Из-за ответа @ Нила вам нужно использовать условные выражения. Простой селектор не будет работать. .filter() будет достаточно, однако:

$('#inputfield').filter(function ()
{
    return $(this).val() == '5.938';
});

Тем не менее, выглядит так, как будто вы используете селектор идентификаторов, который может выбрать не более одного элемента, поэтому .filter() является избыточным & mdash; if...else действительно имеет смысл в этом случае.

3 голосов
/ 20 июня 2011

Это должно работать:

$("#inputfield:text[value*='"+dynamicValue+"']").length

//will select text input #inputfield with a value containing dynamicValue.

jsfiddle: http://jsfiddle.net/XEP4c/3/

1 голос
/ 20 декабря 2016

Ответ Манджи проще, чем выбранный ответ, хотя снова более простая форма. Я не мог заставить это работать на меня:

$("input[value='userID']").remove();

Объединение строки для вставки динамической переменной работает вместо этого, хотя:

$("input[value='" + userID + "']").remove();

Очевидно, замените .remove () на все, что вы хотите с ним сделать.

1 голос
/ 27 ноября 2013

Ответы здесь, кажется, сбивают с толку, поскольку нет четкого объяснения.Когда вы устанавливаете значение динамически, например:

$('#inputfield').val('5.938')

Не получается получить значение с помощью таких селекторов, как:

$('#inputfield[value="5.938"]')

Для этого есть несколько обходных путей.Одним из них является использование фильтра:

var inputfield = $('#inputfield').filter(function () {
    return $(this).val() == '5.938';
});
if (inputfield.length) {
    alert("The input field has the value 5.938");
}

Или вы можете создать свой собственный селектор:

(function($) {
    $.extend($.expr[':'], {
         val: function(el, i, attr) {
               return $(el).val() === attr[3];
         }
    });
}(jQuery));
if ($('#inputfield:val("5.938")').length) {
    alert("The input field has the value 5.938");
}
0 голосов
/ 20 июня 2011

Вы хотите использовать селектор атрибута:

$('#inputfield[value='+dynamicValue+']')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...