使用jquery删除超链接内的标签

时间:2014-01-22 14:23:50

标签: javascript jquery html

我尝试从此超链接中删除span标记(自动生成,我无法删除它们):

<td class="MyClassID">
   <a href="test.asp?showdetail=&ID=<span>12</span>">test</a>
</td>

我的查询:

$(".MyClassID").find("span").contents().unwrap();

行不通......有人能帮助我吗?

6 个答案:

答案 0 :(得分:1)

我认为这是ASP.NET生成的一个范围。而不是asp:Label使用asp:Literal ..这样就不会生成任何标签。

答案 1 :(得分:0)

试试这个:

var reg = /<span>|</span>/i;
$(".MyClassID").find("a").attr(href,$(".MyClassID").find("a").attr(href).replace(reg,''));

答案 2 :(得分:0)

试试这个DEMO

$("a").each(function (){
var id=$(this).attr("href").substring($(this).attr("href").indexOf("<span>"))

var k=$(this).attr("href").substring($(this).attr("href").indexOf("<span>"),0);
    $(this).attr("href",k+$(id).text());
console.log($(this).attr("href"));
});

答案 3 :(得分:0)

Fiddle Demo

$(".MyClassID a").attr('href', function (_, old) {
    return old.replace('<span>', '').replace('</span>', '');
});

<小时/> 问题span标记未预设在.MyClassID

span位于href代码的a属性中。

使用空字符串

更改replace <span></span>

.attr( attributeName, function(index, attr) )

答案 4 :(得分:0)

没有理由使用正则表达式,在HTML上使用正则表达式是个坏主意。

令人遗憾的是DOM有textContent / innerText,它只提供了文本内部的元素。 Jquery为您提供text()为您执行此操作。

所以你可以抓住文本并将其放回元素中。

$(".MyClassID").find("a").each(
    function () {
        var anchor = $(this);
        anchor.html( anchor.text() );
    }
);

如果你愿意,你也可以设置文本而不是html

anchor.text( anchor.text() );

答案 5 :(得分:-1)

由于某些奇怪的原因,您的span标记位于属性中。使用替换:

删除它们
$(".MyClassID").find("a").attr("href", function(i, val) {
    return val.replace("<span>", "").replace("</span>", "");
});

Here is a Fiddle上述内容。