Javascript jQuery/Regex:从TD中删除带有嵌套Div的Div
我有一个TD,它总是包含一个div和div之外的一些文本 div有四个嵌套div,它们始终遵循下面的结构。 我唯一感兴趣的是这个TD中出现在主div之外的文本,其他所有内容都应该删除 我想保留的文本各不相同,其余的结构是固定的 示例TD:Javascript jQuery/Regex:从TD中删除带有嵌套Div的Div,javascript,jquery,Javascript,Jquery,我有一个TD,它总是包含一个div和div之外的一些文本 div有四个嵌套div,它们始终遵循下面的结构。 我唯一感兴趣的是这个TD中出现在主div之外的文本,其他所有内容都应该删除 我想保留的文本各不相同,其余的结构是固定的 示例TD: <td id="myTD"> <div id="show_status_1622327228" class="nor_addr_status" onmouseout="show_status_div(2, this);" onmous
<td id="myTD">
<div id="show_status_1622327228" class="nor_addr_status" onmouseout="show_status_div(2, this);" onmouseover="show_status_div(1, this);" style="display: none;">
<div id="status_safe_1622327228" class="status_hov" onmouseout="javascript:chgcolor(2, this);" onmouseover="javascript:chgcolor(1, this);">
Text1
</div>
<div id="status_unknown_1622327228" class="status_hov" onmouseout="javascript:chgcolor(2, this);" onmouseover="javascript:chgcolor(1, this);">
Text2
</div>
<div id="status_pr_1622327228" class="status_hov" onmouseout="javascript:chgcolor(2, this);" onmouseover="javascript:chgcolor(1, this);" style="background-color: rgb(255, 255, 255);">
Text3
</div>
<div id="status_fraud_1622327228" class="status_hov" onmouseout="javascript:chgcolor(2, this);" onmouseover="javascript:chgcolor(1, this);" style="background-color: rgb(255, 255, 255);">
Text4
</div>
</div>
The only text I want to keep
</td>
$('#myTD').text().replace(/<div[\s\S]+?<\/div>/g, "").replace(/<a[\s\S]+?<\/a>/g, ""));
文本1
文本2
文本3
文本4
我想保留的唯一文本
我尝试了以下方法,但没有成功-可能是因为嵌套的div:
<td id="myTD">
<div id="show_status_1622327228" class="nor_addr_status" onmouseout="show_status_div(2, this);" onmouseover="show_status_div(1, this);" style="display: none;">
<div id="status_safe_1622327228" class="status_hov" onmouseout="javascript:chgcolor(2, this);" onmouseover="javascript:chgcolor(1, this);">
Text1
</div>
<div id="status_unknown_1622327228" class="status_hov" onmouseout="javascript:chgcolor(2, this);" onmouseover="javascript:chgcolor(1, this);">
Text2
</div>
<div id="status_pr_1622327228" class="status_hov" onmouseout="javascript:chgcolor(2, this);" onmouseover="javascript:chgcolor(1, this);" style="background-color: rgb(255, 255, 255);">
Text3
</div>
<div id="status_fraud_1622327228" class="status_hov" onmouseout="javascript:chgcolor(2, this);" onmouseover="javascript:chgcolor(1, this);" style="background-color: rgb(255, 255, 255);">
Text4
</div>
</div>
The only text I want to keep
</td>
$('#myTD').text().replace(/<div[\s\S]+?<\/div>/g, "").replace(/<a[\s\S]+?<\/a>/g, ""));
$('#myTD').text().replace(/您是否尝试过:
$("#myTD>div").remove()
您是否尝试过:
$("#myTD>div").remove()
中国有十只小猫刚刚死亡,还有四只独角兽在那里被残忍地绝育了!
你为什么要用正则表达式做这样的事
要删除每个DOM节点并只保留textNodes,请在nodeType上筛选并删除其余节点
$('#myTD').contents().filter(function() {
return this.nodeType != 3;
}).remove();
中国有十只小猫刚刚死亡,还有四只独角兽被残忍地绝育了!
你为什么要用正则表达式做这样的事
要删除每个DOM节点并只保留textNodes,请在nodeType上筛选并删除其余节点
$('#myTD').contents().filter(function() {
return this.nodeType != 3;
}).remove();
这很简单-
$('#myTD').find('div').remove();
这很简单-
$('#myTD').find('div').remove();
非常感谢!非常感谢!