【问题标题】:Finding a element with a fake attribute that was added查找添加了虚假属性的元素
【发布时间】:2011-06-02 08:55:52
【问题描述】:

我为页面上的所有元素添加了一个假属性,例如myId=100,每个元素都有一个不同的假ID。
现在我需要根据fake id找一个元素,这可能吗?
我试过做

$("#myFrame").contents().find('a').each(function () {
    if ($(this).attr['myid'] === 100) {
        $(this).hide();
    }
});    

有更好的想法吗?
谢谢

【问题讨论】:

  • 无论您遇到什么问题,我都不敢相信这是最好的解决方案。
  • 你的假身份证会被编译吗? 有那么糟糕吗?
  • 我对您为所有 a 分配一个 fake id 的脚本感兴趣。你能在编辑中发布它吗?
  • @roXon 对不起,我不能把它给你,因为我没有它,我只有在添加假 ID 后才有网站。

标签: jquery attributes find


【解决方案1】:

$(this).attr['myid'] 应该是 $(this).attr('myid')attr 是一个函数)。

您也可以使用attribute selector:

$("#myFrame").contents().find('a[myId="100"]').hide();

您应该避免向 HTML 元素添加自定义属性。如果您解释问题,我们可能会提出更好的方法。

【讨论】:

  • 如果我想让 .each() 遍历所有 DOM 元素(不仅是 a)我该怎么做?
  • 如果您只想对具有特定 ID 的元素执行操作,则只需省略 a:$("#myFrame").contents().find('[myId="100"]')。否则使用* 而不是a$("#myFrame").contents().find('*')。但是遍历每个元素需要时间。你想做什么?
【解决方案2】:

不要添加自定义属性,而是使用 HTML5 方式:

<span data-id="blahblah">Foo</span>


alert($(this).data("id")); // blahblah

http://api.jquery.com/data/

【讨论】:

    猜你喜欢
    • 2019-11-28
    • 2014-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-14
    相关资源
    最近更新 更多