我正在尝试编写一个jquery选择器,它将选择对其两个属性具有相同值的对象.
像这样的东西:
$('div[attr1=attr2]')
鉴于:
<div attr1="foo" attr2="bar">A</div>
<div attr1="bar" attr2="bar">B</div>
<div attr1="foo" attr2="bar">C</div>
<div attr1="foo" attr2="foo">D</div>
我希望它返回到B和D div的链接.
有什么想法吗?
您可以使用带参数的自定义选择器执行此操作.
$('div:attrEqual(attr1 attr2)')
您可以像这样定义自定义选择器:
$.expr[':'].attrEqual = function(obj, index, meta, stack) {
  var attrs = meta[3].split(" ");
  return $(obj).attr(attrs[1]) == $(obj).attr(attrs[0]);
};
为了提高性能,请添加[attr1][attr2]到选择器,以便本机DOM筛选出不具有这两个属性的节点.
我认为属性选择器只允许您与常量值进行比较.但您可以使用该.filter()功能进行比较:
$('div[attr1][attr2]').filter(function(index) {
  return $(this).attr('attr1') == $(this).attr('attr2');
})
| 归档时间: | 
 | 
| 查看次数: | 1205 次 | 
| 最近记录: |