我试图想出可以取代文本链接的功能。标签内的图像应该移动到包装上,原始的a应该被移除。如何使用JQuery将链接转换为文本?
JS:
var selectors = 'a.mark-video;a.sp5;a>img[alt!=""]'
selectors = selectors.split(";").join(", ");
$(selectors).each(function() {
var current = this;
if (this.nodeName == "IMG") {
current = this.parentNode;
if (current.nodeName != "A")
current = this.parentNode;
if (current.nodeName != "A")
return false;
current = $(current);
}
var wrapper = current.parent();
var new_context = $().append(current.html());
current.remove();
wrapper.append(new_context);
}
);
问题是 1),该图像没有被插入到所述包装 2)如果将它插入它不会有正确的位置。
我使用webextensions API(火狐插件),我尝试注入代码到网站: http://zpravy.idnes.cz/zahranicni.aspx
在调试器中,你可以看到两个包装带class =“艺术”。我删除了第一个链接,但未插入图像。当第一次迭代后调试器暂停时,第二个还没有被删除。
我希望你能找出为什么图像不追加,以及如何将其追加到元素a
的原始位置。我需要首先找到元素a
的位置,然后将图像移动到正确的位置 - 即在div.art-info之前。
注:请不要改变选择的字符串。这是来自表单字段的用户输入。
编辑:
几乎有:
function(){
if (this.parentNode.nodeName == "A")
$(this.parentNode).replaceWith($(this));
else
$(this).html().replaceWith($(this)); // error: html() result does not have replaceWith...
}
在突出显示的代码中,目标是采用该锚标记中的链接并使用'' – Novocaine
编号将其变为图像。图像必须保持不变/不变。它应该使图像不可点击。所以你可以点击任何图像而不被重定向。 – user1141649