1

これは私のHTMLDOMです。

<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" />

divsしたがって、上記のすべてを意味する「yak-bak」で始まるクラス名をすべて削除したいと思います。

だから私はこのスクリプトを試してみます:

$('.Doop').click(function () {

    $('span[class|="yak-bak"]').parent('div').remove();
});

yak-bakしかし、クラスが2番目に来るので、d1とd2が削除され、d3、d4が残ります。これも試してみます。

$('.Doop').click(function () {

    $('span[class^="yak-bak"]').parent('div').remove();
});

それで、あなたの提案は何ですか?問題はどこだ?

4

2 に答える 2

4

複数のクラスを持つ要素をターゲットにするには、属性クラスの先頭または途中で「yak-bak」で開始します。次を使用できます。

JQUERY

$("div[class^='yak-bak'],div[class*=' yak-bak']").parent('div').remove();

これにより、クラスが「yak-bak」で始まる要素と、「yak-bak」で表されるクラスを含む要素が選択されます。

于 2012-05-08T12:54:37.123 に答える
0
$('div').filter(function() {
  return $(this).has('span[class^="yak-bak"]');
}).remove();

デモ

または

$('div').filter(function() {
  return $(this).has('span[class^="yak-bak"], span[class*=" yak-bak"]');
}).remove();

しかし、最初のもので十分です。

于 2012-05-08T12:47:32.530 に答える