在“按属性选择”值中查找所有匹配选项

Finding all matching options in a select by attribute value

本文关键字:查找 选项 属性 选择 按属性选择      更新时间:2023-09-26

我有一个带有多个选项的HTML选择控件。每个选项都有一个名为"linkid"的属性。示例,

"<option linkid = '100' title = 'some title 1' value='1'>some value 1</option>"
"<option linkid = '100' title = 'some title 2' value='2'>some value 2</option>"

现在,我需要通过属性"linkid"找到所有匹配的选项。

我尝试了以下代码,但它不起作用。。。

var matchingOptions = myselectcontrol.find('[linkid==100]');
var matchingOptions = myselectcontrol.find(':100');

上面的代码导致语法错误。我做错了什么?有没有办法通过属性值找到匹配的选项?

谢谢,Vim

您非常接近,请尝试:

var matchingOptions = myselectcontrol.find('[linkid=100]');

尽管值得一提的是,在HTML4.x下,自定义属性是无效的;在HTML5下,有(有效的)data-*属性来保存自定义数据,在HTML4.x下,这些属性仍然是无效的(尽管仍然有效),但在HTML5中是有效的。

如果您认为有必要进行更改,您的代码将变为:

<option data-linkid = '100' title = 'some title 1' value='1'>some value 1</option>

var matchingOptions = myselectcontrol.find('[data-linkid=100]');

参考文献:

  • 属性等于([attribute="value"])选择器