1

可能重复:
jquery v1.3.2 按属性查找元素
如果链接没有类或 ID,是否可以通过其 href 获取链接?

我的问题围绕着一个元素的属性(不能使用 ID,因为我可以确定它们是唯一的) -

例如,我有这个:

<a href="someurl.com">Link</a>

但我可以动态注入,并且我可能有一种可行/快速/有效的方式在 dom 中引用它(请记住,会有很多这样的链接)。

<a href="someurl.com" data-access-label="000998">Link</a>

所以,我将通过哈希重申并好奇这是否会快速/高效?

data = {
  '98789' : 'yeah',
  '871637':'cool',
  '00198789' : 'sure thing',
  '871609':'no way',
  '000998':'alright'
}

因此,对我来说,我将 .each 通过所有链接然后找到数据访问标签值似乎效率低下,然后呢?我可以绑定那些href或其他东西,以便一旦我运行我的函数 - 它看起来像这样

 <div>
   <a href="someurl.com" data-access-label="000998">Link</a> alright
       <span> <a href="someurl.com" data-access-label="871637">Link</a> cool</span>
 </div>

在任何给定时间,数据散列中只会有超过 40 个项目,所以也许我可以通过它“.each”,并将键与那些 data-access-label 中的值匹配?但我想要的可能是直接访问该项目,而不是通过 href 重申。

4

3 回答 3

4

使用 jQuery 的属性选择器

var link = $('[data-access-label*="' + identifier + '"]');

alert(link.text());
于 2012-10-29T18:21:28.077 回答
2

$("a[数据访问标签]")

这将返回具有该属性的所有 a 元素的数组。

然后您可以调用 .each() 进行进一步处理。

http://api.jquery.com/has-attribute-selector/

于 2012-10-29T18:26:33.713 回答
0
$("a").each(function(i) { 
    if (typeof $(this).attr('name') !== 'undefined' && $(this).attr('name') !== false) {
        // do work
    };
})

或者

$("a").each(function(i) { 
    if (typeof $(this).data('access-label') == "000998") {
        // do work
    };
})

或者

$('[data-access-label*="' + indexValue + '"]').click(function(e) { /* do work */ });
于 2012-10-29T18:24:20.230 回答