有没有办法在一次调用中修改每个jquery对象的特定属性?

时间:2015-02-12 14:25:18

标签: javascript jquery

基本上......我正在使用此代码

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都被设置为数组中第一个元素的数据加载文本。

2 个答案:

答案 0 :(得分:2)

使用提供给html()的功能:

   editorLinks.html(function(){
        return $(this).attr("data-loadedtext");
   });

该函数的返回值用作每个元素的html() 的值

在评论中使用示例HTML:

JSFiddle: http://jsfiddle.net/TrueBlueAussie/taesc0tt/2/

答案 1 :(得分:1)

是的,您可以,但是您需要将类的名称更改为admin_editor_link,因为jQuery选择器正在尝试查找包含admin_editor_linkhtml类的元素。 (当然,除非你实际上在寻找这两个类的元素 - 你的问题没有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");
});

DEMO

DEMO with both classes