我有一个TD,它总是包含div和div之外的一些文本。
div有四个嵌套的div,它们总是遵循以下结构。 我唯一感兴趣的是这个TD中的文字显示在主要div之外 ,其他一切都应该删除。
我想要保留的文字各不相同,其余部分的结构是固定的。
示例TD:
<td>
<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>
我尝试了以下工作正常。我唯一担心的是多次替换/ Regexes,我想知道我是否可以使用.remove()来减少加载时间。
如果可以,有人可以告诉我如何调整它吗? 注意:下面的第一行需要保持不变,这只是关于下面的替换/正则表达式部分。
util.setProp(obj, "address", $(msg).find("#tab_address_info")
.find("td:contains('(Home)')").prev().text()
.replace(/<div[\s\S]+?<\/div>/g, '')
.replace(/\s+/g, ' '));
非常感谢你提供任何帮助,蒂姆。
答案 0 :(得分:1)
试试这个:
$('td div').remove();
<强> Working Demo 强>
通过定位DIV更新
$('.status_hov').closest('td').find('div').remove();
答案 1 :(得分:1)
正如@Milind Anantwar所说,你可以使用.remove()
。如果你想在div之外得到文本的值来设置其他地方但实际上没有从页面中删除div,那么你需要在.clone()
之前.remove()
我想也许你想要像
这样的东西var td = $('td.cleantd').clone(); //Using comment above - otherwise find the right td yourself
$('div', td).remove();
util.setProp(obj, "address", td.text());