如何在输入字段上使用:contain()
,例如
#inputfield
包含动态值5.938,我想使用$("#inputfield:contains('5.938')")
。
但这不起作用,我在jsFiddle提供了演示。
我不想使用if(element.val() == '5.938')
,因为我需要一个临时选择器而不是if/else
语句。
我也不是指使用[value=5.938]
因为值会改变。
答案 0 :(得分:3)
由于@Neal's answer,您需要使用某种条件。简单的选择器不起作用。然而,.filter()
就足够了:
$('#inputfield').filter(function ()
{
return $(this).val() == '5.938';
});
那就是说,看起来就像你正在使用一个ID选择器,它最多可以选择一个元素,所以.filter()
是过度的 - if...else
真的是最有效的在这种情况下感觉。
答案 1 :(得分:3)
这应该有效:
$("#inputfield:text[value*='"+dynamicValue+"']").length
//will select text input #inputfield with a value containing dynamicValue.
答案 2 :(得分:1)
这里的答案似乎令人困惑,因为没有明确的解释。当您动态设置值时:
$('#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");
}
答案 3 :(得分:1)
Manji的答案比选定的答案简单,尽管再次简单。我无法让这个为我工作:
$("input[value='userID']").remove();
连接字符串以插入动态变量可以改为处理:
$("input[value='" + userID + "']").remove();
显然用你要做的任何事情替换.remove()。
答案 4 :(得分:-1)
您想使用属性选择器:
$('#inputfield[value='+dynamicValue+']')