2011-07-10 64 views
8

我有一堆錨標記(<a>),我需要轉換爲<span>標記。我不需要這樣做來禁用點擊(我知道關於preventDefault()並從點擊事件處理程序返回false)。我只需要這樣做,以啓用拖放排序(IE禁止在錨標籤上,但允許跨度)。如何禁用錨(鏈接)標記(轉換爲跨度)

我有一個很好的工作解決方案。

http://jsfiddle.net/5HGbx/

我只是想知道,如果你的任何嚮導有實現相同的最終結果的巧妙方式。

回答

29

你可以使用replaceWith從jQuery的API

$('#myButton').click(function(){ 
    $("#someDiv a").replaceWith(function(){ 
     return $("<span>" + $(this).html() + "</span>"); 
    }); 
}); 

小提琴這裏:http://jsfiddle.net/naveen/ufYCt/1/

1

從納文的回答,如果你想href標記也只是修改了這個原則,你就失去了HREF標籤

...

$('#myButton').click(function(){ 
    $("#someDiv a").replaceWith(function(){ 
     return $("<span href=\""+$(this).attr('href')+"\">" + $(this).html() + "</span>"); 
    }); 
}); 
+0

pal這會產生無效的標記。 span沒有href標記 – naveen

+0

'data-href'將是屬性名稱的更好選擇,甚至可以是有效的HTML5。 –