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是唯一的,这也不起作用。