Jak mogę to zrobić z jQuery? Myślałem o pętli i indeksowaniu, ale nie mogę się tam dostać. Chcę usunąć cały węzeł po symbolu [
.
<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>
0
user3522761
15 sierpień 2014, 06:19
2 odpowiedzi
Najlepsza odpowiedź
Użyj jQuery :contains
selektor, aby wybrać element z określonym tekstem. Spróbuj tego:
Do jQuery 1.8:
$("p:contains('[')").nextAll().andSelf().remove();
Z nowszymi wersjami jQuery:
$("p:contains('[')").nextAll().addBack().remove();
2
Unknown
15 sierpień 2014, 02:23
Zauważyłem, że wspomniałeś o czymś o indeksowaniu, więc oto długą drogę proceduralną wykonania tego za pomocą jQuery:
var remove = false;
var para = {};
$("p").each(function () {
para = $(this);
if (para.text().indexOf("[") !=-1) {
remove = true;
}
if (remove) {
para.remove();
}
});
Może możesz go owinąć w funkcji
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", "[");
0
Mohammed Joraid
15 sierpień 2014, 02:43