0

I'm using jQuery to get the content of a link and want to replace the link with just the content it has.

I got it to work, but I'm wondering if I could write it in just one statement instead of two.

Here is my code:

text = $(this).closest('.ui-btn-text').find("a[data-rel='popup']").html();
$(this).closest('.ui-btn-text').find("a[data-rel='popup']").replaceWith(text);

Thank you!

4

3 回答 3

2

.replaceWith()函数接受一个返回新 HTML 以替换该元素的函数,因此您可以执行以下操作:

$(this).closest('.ui-btn-text').find("a[data-rel='popup']").replaceWith(function() {
    return $(this).html();
});

重要的是要注意this传递给的函数内部与行首.replaceWith()不同this;在函数内部,它指的是被新 HTML 替换的当前匹配元素。

于 2013-10-18T15:21:20.710 回答
1

你可以像这样优化它

textObj = $(this).closest('.ui-btn-text').find("a[data-rel='popup']");
textObj.replaceWith(textObj.html());
于 2013-10-18T15:21:03.560 回答
0
var node = $(this).closest('.ui-btn-text').find("a[data-rel='popup']");
node.replaceWith(node.html());
于 2013-10-18T15:21:30.780 回答