这是我的HTML DOM:
<div id="d1" class="Addable"><span class="yak-bak-nak vok-do-maria"> <p>Goola1</p>
<span>volaa</span></span></div>
<div id="d2" class="Addable"><span class="yak-bak-val vok-do-maria"> <p>Goola2</p></span></div>
<div id="d3" class="Addable"><span class="vok-do-maria yak-bak-nak"> <p>Goola3</p></div>
<div id="d4" class="Addable"><span class="vok-do-maria yak-bak-nak"> <p>Goola4</p></div>
<input type="button" class="Doop" value="Do" />
所以我想删除所有类别名称以“yak-bak”开头的divs
,这意味着以上所有内容。
所以我试试这个剧本:
$('.Doop').click(function () {
$('span[class|="yak-bak"]').parent('div').remove();
});
但只是d1和d2删除而d3,d4仍然存在,因为yak-bak
类也是第二个我也尝试了这个:
$('.Doop').click(function () {
$('span[class^="yak-bak"]').parent('div').remove();
});
那你的建议是什么?问题出在哪里?
答案 0 :(得分:4)
要定位具有多个类的元素,其中一个类在属性类的开头是“yak-bak”,或者在其中间,可以使用:
<强> JQUERY 强>
$("div[class^='yak-bak'],div[class*=' yak-bak']").parent('div').remove();
这将选择以“yak-bak”开头的类的元素和包含“yak-bak”所声明的类的元素。
答案 1 :(得分:0)
$('div').filter(function() {
return $(this).has('span[class^="yak-bak"]');
}).remove();
<强> DEMO 强>
或者
$('div').filter(function() {
return $(this).has('span[class^="yak-bak"], span[class*=" yak-bak"]');
}).remove();
但第一个就足够了。