我在选项标签上有自定义数据属性,其中包含Guid
的列表,例如
<option data-show-for="64be38c4-1fcc-4f09-80ff-6d8075a2fcb1,b2457a92-e743-41f7-a448-a171bcfe92e1,2f02a194-4fff-417e-b776-f686f307c919">
如果要更改其他值,我只想显示那些在data-attribute列表中包含所选Guid
的元素。或者,也可以隐藏列表中没有选定Guid
的元素。
如何使用jQuery
实现这一目标?
更新#1
截至目前的答案并没有解决我的问题(或者我错过了一些重点),我想澄清一下我的问题。
我有<select id="hidemyoptions">
个<option>
个。{每个<option>
都有一个数据属性,其中包含Guid
的列表,以逗号分隔。
另一个<select id="settheid">
设置Guid
- 值。在hidemyoptions
- <select>
,我知道要:
<option>
个数据属性包含由Guid
或settheid
的{{1}}个
<option>
Guid
的{{1}}个
醇>
更新#2
对我有用的解决方案:
settheid
答案 0 :(得分:2)
您可以使用属性选择器。
var guid="64be38c4-1fcc-4f09-80ff-6d8075a2fcb1,b2457a92-e743-41f7-a448-a171bcfe92e1,2f02a194-4fff-417e-b776-f686f307c919"
$("option[data-show-for='"+guid +"']").prop("selected",true);
根据要求进行编辑
var guid = "2f02a194-4fff-417e-b776-f686f307c919";
$("option").hide();
$("option").filter(function() {
return $(this).data("show-for").indexOf(guid) > -1;
}).show();
答案 1 :(得分:1)
隐藏没有指定guid的选项
$guid = '64be38c4-1fcc-4f09-80ff-6d8075a2fcb1';
$('option').not('option[data-show-for*="'+$guid+'"]').hide();