【问题标题】:Add some properties to a <div> element向 <div> 元素添加一些属性
【发布时间】:2011-10-20 22:45:51
【问题描述】:

我想向&lt;div&gt; 元素添加一些属性。除.data() 外,以下所有内容均有效。我看不到它出现在 Firefox/Firebug 中。

$('#menu-container')
  .css('background-image','url("'+big_image+'")')
  .addClass('click_2')                          
  .data("new_link", "new_link.html")
  .css('z-index',"99");

我做错了吗?

【问题讨论】:

  • 当你说你看不到它时,你究竟是如何寻找它的?您应该通过 jquery API 查找它
  • 在萤火虫中,我希望看到它
  • 在 FF 7.0.1 中对我来说很好 -- jsfiddle.net/KEwhf -- 注意:我删除了 .css('background-image'...) 行,这样我就不必这样做了创建该变量。

标签: javascript jquery html jquery-data


【解决方案1】:

data 不仅仅是您可以添加的任何普通属性,它是一种将对象和数据附加到 DOM 元素的方法。您在 HTML 源代码或 Firebug 中看不到它,但您可以使用 .data() 查询它

数据本身并不存储在元素上。它实际上存储在 $.cache 中

【讨论】:

    【解决方案2】:

    .data() 正在工作,但它不会显示为元素的属性。

    如果你想看到它的工作,你可以试试console.log($('#menu-container').data('new-link'));

    如果属性是你想要的,那么你可以做.attr('new-link','new-link.html')

    【讨论】:

      【解决方案3】:

      使用

      $('#menu-container').attr('data-new_link','new_link.html');
      

      它会出现在firebug中,你也可以使用预期的jQuery行为

      $('#menu-container').data('new_link');
      

      检索存储的值..


      但是真的没有必要这样做。它存储在.data() 集合中,无论是否作为属性添加到 DOM 元素。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多