Javascript 使用indexOf循环以删除html实体
如何使用jquery实现这一点?我想到了loop和indexOf,但还没到那里。我想删除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
[
符号后的所有节点
<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", "[");