我試圖想出可以取代文本鏈接的功能。標籤內的圖像應該移動到包裝上,原始的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