jQuery方法链接多元素选择器

时间:2015-07-09 06:01:23

标签: javascript jquery

css类pageLink有严重的元素 我想在这些链接中替换一些字符串

 $(".pageLink").html($(".pageLink").html().replace("x", "y"));

问题是,第二个$(".pageLink").html()获取任何元素的内部HTML,而不一定是我即将更改/设置的元素的html。我需要像

这样的东西
 $(".pageLink").html(this.html().replace("x", "y"));

jQuery中是否存在类似的内容,或者我是否必须使用each循环?

5 个答案:

答案 0 :(得分:3)

您不需要each循环遍历所有元素。您可以使用函数来设置元素的innerHTML。

$(".pageLink").html(function(ind, elHtml) {
    return elHtml.replace("x", "y");
});

Docs

答案 1 :(得分:2)

如果你有一个选择集,并且你想要将每个元素与自身匹配,你需要在setter中使用each循环或类似的循环结构,因为你需要一个函数作用域,所以没有聪明的方法命令this在您的例子中起作用:

$(".pageLink").html(function(_, v){
    return v.replace("x", "y");
});

答案 2 :(得分:2)

您可以使用each

$('.pagelink').each(function(){
   $(this).html(function(i,v){
     return v.replace("x", "y");
   });
});

答案 3 :(得分:2)

使用jQuery.each()方法迭代元素并将HTML单独应用于每个链接。

$(".pageLink").each(function() {
    $(this).html($(this).html().replace("x", "y"));
});

答案 4 :(得分:2)

将innnerHtml值作为回调函数中的参数,

$(".pageLink").html(function (idx, elm) {
    return elm.replace("x", "y")
});