我正在尝试更改数据属性,但它似乎永远不会被更改并保持为"TEXT",这是默认值.
function SuccessGetActorsForGroupCallback(data, el) {
var str = "";
jQuery.each(data, function (i, val) {
str += val + '<br />';
});
$(el).data('original-title', str);
Utilities.ApplyTooltips($(el));
}
Run Code Online (Sandbox Code Playgroud)
请帮忙
Bla*_*ger 36
该.data
方法不会改变data-
HTML属性; 它改变了jQuery内部存储的变量.
如果您确实需要/想要更改data-
属性,请使用以下.attr()
方法明确地执行此操作:
$(el).attr('data-original-title', str);
Run Code Online (Sandbox Code Playgroud)
但是,这不会改变返回的值.data
.只有在无法找到内部存储的值时,jQuery才会从data-
HTML属性中获取该值.如果在更改HTML属性后再次检索,则会发现它没有更改.$(el).data('original-title')
如果这是一个问题,请使用该.removeData()
方法删除内部存储的值.下次使用时.data()
,jQuery会看到它丢失并检索data-
HTML属性.
看看:http://jsfiddle.net/mblase75/LHCUK/
HTML:
<p id="p" data-title="blah"></p>
Run Code Online (Sandbox Code Playgroud)
jQuery的:
console.log($('#p').data('title')); // returns "blah"
// alter the attribute directly
$('#p').attr('data-title','whooo'); // data-title="whooo"
// test if .data is changed
console.log($('#p').data('title')); // still returns "blah"
// delete the .data() value
$('#p').removeData('title');
// now fetch it again -- it will retrieve the new data- attribute
console.log($('#p').data('title')); // returns "whooo"
Run Code Online (Sandbox Code Playgroud)
现在,在实践中,您不必担心这一点.请记住,该data-
属性代表变量的初始值,.data()
而不一定是该变量的当前值,你会没事的.
总结:该.data()
方法检索从HTML元素的值一旦文档被加载时,并不会作为变量存储在内部,以便再次只要做.
归档时间: |
|
查看次数: |
7249 次 |
最近记录: |