Javascript 带有contains()的jquery多选择器
我在一个Javascript 带有contains()的jquery多选择器,javascript,jquery,html,jquery-selectors,Javascript,Jquery,Html,Jquery Selectors,我在一个中有很多和一个名为zip <SELECT id="city"> <OPTION zip="AUC 1291 100005" value="1">City 1</OPTION> <OPTION zip=" 1295 100006" value="2">City 2</OPTION> <OPTION zip=" 1299 100008" value="3">City 3</OPTION> <
中有很多
和一个名为zip
<SELECT id="city">
<OPTION zip="AUC 1291 100005" value="1">City 1</OPTION>
<OPTION zip=" 1295 100006" value="2">City 2</OPTION>
<OPTION zip=" 1299 100008" value="3">City 3</OPTION>
</SELECT>
为什么?
包含
检查内部元素而不是属性,您应该使用类似以下内容:
$('#city option').filter(function(){
return this.innerHTML.indexOf(val) > -1 ||
$(this).attr('zip').indexOf(val) > -1;
});
请注意,
zip
不是有效的HTML属性,最好使用datazip
$('#city option').filter(function(){
return this.innerHTML.indexOf(val) > -1 ||
$(this).data('zip').indexOf(val) > -1;
});
包含
检查内部元素,而不是属性,您应该使用以下方法:
$('#city option').filter(function(){
return this.innerHTML.indexOf(val) > -1 ||
$(this).attr('zip').indexOf(val) > -1;
});
请注意,
zip
不是有效的HTML属性,最好使用datazip
$('#city option').filter(function(){
return this.innerHTML.indexOf(val) > -1 ||
$(this).data('zip').indexOf(val) > -1;
});
如果要选择属性为taht value且包含请求字符串的元素,则必须使用:
var val = '1291'; //Zip code
var x = $('#city option[zip*="' + val + '"]').val();
如上所述:
但是正如guys所说,更好的方法是使用HTML5的datazip
属性,而不是zip
(只需在前面加上数据-
)
在这种情况下,您的选择器将是:
var x = $('#city option[data-zip*="' + val + '"]').val();
希望对您有所帮助。如果您想选择具有属性的元素,taht value包含请求的字符串,您必须使用:
var val = '1291'; //Zip code
var x = $('#city option[zip*="' + val + '"]').val();
如上所述:
但是正如guys所说,更好的方法是使用HTML5的datazip
属性,而不是zip
(只需在前面加上数据-
)
在这种情况下,您的选择器将是:
var x = $('#city option[data-zip*="' + val + '"]').val();
希望有帮助。以下是我问题的答案。测试和工作:)
这是我问题的答案。测试和工作:)
因为没有
zip
元素zip
是本例中选项
元素的一个属性。您正在查找属性选择器:。zip
不是有效的html属性,请改用data-zip
。除此之外,你的方法对我来说没有多大意义。因为没有zip
元素zip
是本例中选项
元素的一个属性。您正在查找属性选择器:。zip
不是有效的html属性,请改用data-zip
。除此之外,您的方法对我来说没有多大意义。当我搜索“AU”时,即使代码示例中的AU是唯一的,这也不起作用。当我搜索“AU”时,即使代码示例中的AU是唯一的,这也不起作用。