为什么jQuery数据不适用于追加?

时间:2016-02-23 12:55:54

标签: javascript jquery append

我将数据从服务器附加到无序列表,但设置Select FirstName + ' ' + MiddleName + ' ' Surname as [Full Name] from tbl_Students WHERE StudentID = ? 属性data-id不起作用,但data()会这样做。

使用attr()时:

附加data()

<li>Home</li>
$('#menu').append($('<li>').text("Home").data('id', 5));

使用<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul id="menu"> </ul>时:

追加attr()

<li data-id="5">Home</li>
$('#menu').append($('<li>').text("Home").attr('data-id', 5));

我知道我可以像这样追加它,但更喜欢第一种选择。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="menu">
</ul>

1 个答案:

答案 0 :(得分:5)

.data()方法将data- *属性作为辅助函数读取。但它首先尝试做的是从jQuery的内部缓存中读取数据作为键值对(附加到元素)。

主要的理由是,它没有相反的工作方式。即.data()不会在元素上放置属性。它只会将数据存储在jQuery的内部缓存中,以便与该元素相关联。