我尝试从此超链接中删除span标记(自动生成,我无法删除它们):
<td class="MyClassID">
<a href="test.asp?showdetail=&ID=<span>12</span>">test</a>
</td>
我的查询:
$(".MyClassID").find("span").contents().unwrap();
行不通......有人能帮助我吗?
答案 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)
$(".MyClassID a").attr('href', function (_, old) {
return old.replace('<span>', '').replace('</span>', '');
});
<小时/> 问题
span
标记未预设在.MyClassID
中
span
位于href
代码的a
属性中。
使用空字符串
更改replace
<span>
和</span>
答案 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上述内容。