Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获取包含在jQuery中使用:contains找到的字符的直接父元素?_Jquery_Contains - Fatal编程技术网

如何获取包含在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,我做了更正。