基本上......我正在使用此代码
var editorLinks;
editorLinks = $(".admin_editor_link.html");
$.each(editorLinks, function(i, link){
$(link).html($(link).attr("data-loadedtext"));
});
我想知道如果没有$ .each调用,有没有办法做到这一点......就像......
editorLinks.html($(this).attr("data-loadedtext"));
我认为这会起作用(或者我记不起它的一些变化)但是当我尝试它时,所有元素html都被设置为数组中第一个元素的数据加载文本。
答案 0 :(得分:2)
使用提供给html()
的功能:
editorLinks.html(function(){
return $(this).attr("data-loadedtext");
});
该函数的返回值用作每个元素的html()
的值。
在评论中使用示例HTML:
答案 1 :(得分:1)
是的,您可以,但是您需要将类的名称更改为admin_editor_link
,因为jQuery选择器正在尝试查找包含admin_editor_link
和html
类的元素。 (当然,除非你实际上在寻找这两个类的元素 - 你的问题没有HTML代码来验证 - 在这种情况下你很好)。
<div data-loadedtext="1" class="admin_editor_link"></div>
<div data-loadedtext="2" class="admin_editor_link"></div>
只需使用函数返回结果
var editorLinks = $(".admin_editor_link");
editorLinks.html(function () {
return $(this).attr("data-loadedtext");
});