我有以下jQuery行,但使用.each()
似乎有些过分。
$('span[data-private]').each(function () {
$(this).text($(this).attr("data-hidden"));
});
有没有更好的方法来编写看起来像这样的jQuery:
// This doesn't work as $(this) refers to document not the current selector
// but it gives the idea of what I'm looking for. I want to reference the current
// selector
$('span[data-private]').text($(this).attr("data-hidden"));
提前感谢您的帮助!
答案 0 :(得分:3)
循环遍历元素时,应使用each()
方法。如果你有几个元素要应用这个函数,那么使用它:
$('span[data-private]').each(function () {
$(this).text($(this).attr("data-hidden"));
});
或者,如果您只将此函数应用于一个元素,那么只需使用text()
方法上的回调,如下所示:
$('span[data-private]').text(function () {
return $(this).attr("data-hidden");
});
无论如何这两种方法都没有收费,但是,这种方法稍微不那么费力,因为它不会循环元素
答案 1 :(得分:2)
.text
可以传递一个回调函数。
$('span[data-private]').text(function(){
return $(this).attr("data-hidden");
});
答案 2 :(得分:0)
嗯,也许可以尝试这样的事情:
(function(){
var $self = $('span[data-private]');
$self.text($self.data('hidden'));
})()