如何获取包含在jQuery中使用:contains找到的字符的直接父元素?
我需要找到某些角色并将其删除。我知道我可以和你一起做这件事如何获取包含在jQuery中使用:contains找到的字符的直接父元素?,jquery,contains,Jquery,Contains,我需要找到某些角色并将其删除。我知道我可以和你一起做这件事 $('.identifiable-selector:contains("x")').each(function() { $(this).html($(this).html().split("x").join("")); }); 但是,字符可能出现在几个不同的位置,因此我必须为层次结构中相当高的:contains选择一个起点。我想做的是启动:contains搜索的高度足够高,我知道无论字符在哪里,我都会找到它,但我只想在需要的最
$('.identifiable-selector:contains("x")').each(function() {
$(this).html($(this).html().split("x").join(""));
});
但是,字符可能出现在几个不同的位置,因此我必须为层次结构中相当高的:contains
选择一个起点。我想做的是启动:contains
搜索的高度足够高,我知道无论字符在哪里,我都会找到它,但我只想在需要的最高级别执行剥离/HTML重写(意味着,在低于我开始搜索的位置)
例如,在这种情况下
<div class='identifiable-selector'>
<div>
<table>
<tr>
<td>
content content x content
<div>
<div>content x content</div>
</div>
</td>
内容x内容
内容x内容
我需要在.identification selector
级别开始搜索,但我想获得td
这是实际包含x
的元素的最高级别,因此我只需重写该HTML即可
如何使用jQuery做到这一点?假设您只想消除元素文本中的“x”实例,而不是任何封闭的HTML元素(如示例中的),那么您应该检查是否有文本节点,然后执行替换
$('.identifiable-selector td:contains("x")').contents().each(function () {
var td = $(this);
if (this.nodeType == Node.TEXT_NODE)
{
// alert('Old text:' + $(this).text());
var newText = $(this).text().split("x").join("");
//alert("New text:" + newText); // Uncomment and see in action
this.textContent = newText;
}
});
请参阅以了解这一点
如果您想要所有内容,包括包含包含包含“x”文本的所有封闭元素,则只需取消文本节点检查。您错过了
$(this).html($(this).html().split(“x”).join(“”)中的上次关闭)
;谢谢@JqueryKing,我做了更正。