我想禁用div內的所有鏈接,並將其替換爲那裏的內容。jQuery:禁用div內的所有鏈接 - 替換內部內容
即
<div><a href="/blah.html">My super link</a></div>
到
<div>My super link</div>
感謝
我想禁用div內的所有鏈接,並將其替換爲那裏的內容。jQuery:禁用div內的所有鏈接 - 替換內部內容
即
<div><a href="/blah.html">My super link</a></div>
到
<div>My super link</div>
感謝
可以使用.replacewith()
和功能,這樣做:
$("div a").replaceWith(function() { return $(this).text(); });
嗯 - 我的是類似於其他快速打字員的答案,但我還以爲html()
本來你想用什麼:
$('div a').each(function() {
$(this).replaceWith($(this).html());
});
+1 - 雖然我們的工作爲例,這將適用於所有適用的情況。 – 2010-05-20 15:34:52
我知道這個問題是老了,但我這樣做完成了這個以下:
1 - 選擇,我想禁用所有錨
2 - 刪除與錨
3相關的所有活動 - 用#替換href屬性值
4 - 將點擊事件添加到不執行任何操作的錨點
下面的代碼示例從我的插件中刪除。該插件也有代碼 再次啓用錨點。它可能會給你想法。
你也可以在(http://www.dougestep.com/dme/jquery-disabler-widget)下載我的插件並使用它或從中刪除你需要的東西。
$('a').each(function(e) {
// disable events on anchor
this._disableEvents($(this));
// save off the HREF value
var href = inp.attr("href");
if (href != undefined) {
// save the HREF attribute value and remove the value
inp.data(dataAnchorHref, href);
inp.attr("href", "#");
}
// override the click event for the anchor
inp.on("click", function(e) {
e.preventDefault();
});
// decorate the anchor with a disabled look
inp.addClass('ui-state-disabled');
});
_disableEvents : function(inp) {
var de = $.Event("disableEvents");
this._trigger("disableEvents", de, inp);
if (de.isDefaultPrevented()) { return; }
var widgetEventPrefix = this.widgetEventPrefix;
// jQuery adds an "events" data attribute on the element when events are registered
var events = inp.data("events");
if (events != undefined) {
var savedEvents = [];
// loop through each event found on the element...
$.each(events, function(eventName, handlers) {
$.each(handlers, function(index) {
var handler = handlers[index];
if (handler != undefined) {
// save the event and handler
var eventObj = {
'eventName' : eventName,
'handler' : handler
};
if (eventName.indexOf(widgetEventPrefix) < 0) {
// unbinding a non widget event
savedEvents.push(eventObj);
inp.unbind(eventName);
}
} });
});
// store the saved events as a data attribute on the element
inp.data(dataSavedEvents, savedEvents);
}
}
+1與鏈接一起給一個解決方案的概要完整的軟件包:-) – kleopatra 2012-11-17 17:50:48
這是否適用於圖像和其他內容? – Chris 2010-05-20 15:49:50
@Chris - 在這種情況下使用'.contents()'而不是'.text()',在這裏看到一個演示:http://jsfiddle.net/qd3E2/2/ – 2010-05-20 15:54:21