Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.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
Javascript 使用indexOf循环以删除html实体_Javascript_Jquery - Fatal编程技术网

Javascript 使用indexOf循环以删除html实体

Javascript 使用indexOf循环以删除html实体,javascript,jquery,Javascript,Jquery,如何使用jquery实现这一点?我想到了loop和indexOf,但还没到那里。我想删除[符号后的所有节点 <p>1</p> <p>2</p> <p>3</p> <p>[</p><!-- detect this symbol and delete ALL the element after it (include itself) --> <p>a</p> <p

如何使用jquery实现这一点?我想到了loop和indexOf,但还没到那里。我想删除
[
符号后的所有节点

<p>1</p>
<p>2</p>
<p>3</p>
<p>[</p><!-- detect this symbol and delete ALL the element after it (include itself) -->
<p>a</p>
<p>b</p>
<p>c</p>
<p>1</p>
<p>2</p>
<p>3</p>
<p>1</p>
<p>2</p>
<p>3</p>
1

二,

三,

[

a

b

c

一,

二,

三,

一,

二,

三,

使用jQuery选择器选择具有特定文本的元素。请尝试以下操作:

直到jQuery 1.8:

$("p:contains('[')").nextAll().andSelf().remove();
使用jQuery较新版本:

$("p:contains('[')").nextAll().addBack().remove();

我注意到您提到了一些关于indexOf的内容,因此使用JQuery有一个很长的过程方法:

也许你可以把它包装成一个函数

function remove_elem(elem, ch) {
    var to_remove = false;
    var para = {};
    $("" + elem).each(function () {
        para = $(this);
        if (para.text().indexOf("" + ch) != -1) {
            to_remove = true;
        }
        if (to_remove) {
            para.remove();
        }
    });    
    return to_remove;
}
//And call it 
remove_elem("p", "[");

您的代码的哪一部分不起作用?请看一看,看看如何提出一个好问题。+1但是
和self
从1.8开始就被弃用了,它现在被称为
addBack
。@elclanrs:Mybad。谢谢兄弟。更新:)
function remove_elem(elem, ch) {
    var to_remove = false;
    var para = {};
    $("" + elem).each(function () {
        para = $(this);
        if (para.text().indexOf("" + ch) != -1) {
            to_remove = true;
        }
        if (to_remove) {
            para.remove();
        }
    });    
    return to_remove;
}
//And call it 
remove_elem("p", "[");