【发布时间】:2013-05-23 19:02:38
【问题描述】:
我正在导入一个 HTML 文件,我想从其中的所有元素中删除所有 href,因此最终文本不会链接到任何地方并且看起来像“普通”文本。
我已经从这个 HTML 中提取了 div#divvy 的一部分,因此删除 href 的过程必须对其有效,而不是对所有响应。
最终结果应该发给div#pepeland。
我有这个代码:
function pepe(){
$.ajax({
url: 'http://www.site.com/text.html',
dataType: 'html',
success: function(response){
$('#pepeland').html(jQuery(response).find('#divvy').html());
}
});
};
我认为但不确定是否应该在上面的代码中插入类似以下几行的内容,但我不知道该怎么做。
$(response).querySelectorAll("href").remove();
或
$(response).attr('href', '');
或
response.replace("href", '');
在下面的答案中,我意识到我想要的是删除所有标签而不删除文本。因为单词的格式始终带有下划线和标签的所有属性。所以烤写了我的正确答案,见下文!
【问题讨论】:
-
您的
response在技术上不可用。您必须基本上附加来自您的帖子的 HTML,然后在该帖子下写一行以查找附加的 html 中的特定链接 -
他的回复是这样的。当您将返回的数据包装为 jQuery 对象
$(data)时,您现在可以在其上使用 jQuery 方法和选择器,因此$(response).find('[href]').prop('href', '');将在响应中查找具有 href 属性的任何元素,然后将获取该属性并更改它什么都不是。 -
@Ohgodwhy 谢谢,我已经纠正了。
.removeAttr()怎么样? -
您不应该在正文中提及正确答案,这就是赞成票,更准确地说是您的“已接受答案”的目的。 AFAIK,您没有投票的特权,但应该可以为您提供接受的答案。请使用那些。总而言之,最后一段似乎没有必要。一个问题应该是一个问题,一个答案应该是一个答案,每个问题都应该独立存在。
标签: jquery ajax response href removeall