2

我想为<div>元素添加一些属性。以下所有工作除了.data(). 我看不到它出现在 Firefox/Firebug 中。

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

我做错了吗?

4

3 回答 3

8

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

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

于 2011-10-20T22:48:28.720 回答
1

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

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

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

于 2011-10-20T22:49:57.620 回答
1

利用

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

它将出现在 firebug 中,您还可以使用预期的 jQuery 行为

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

检索存储的值..


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

于 2011-10-20T22:51:19.633 回答