0

次の場合、がクリックされたときに、クラス、、~ など<span> class=addをチェックして削除するにはどうすればよいですか? それらが親の後に表示される場合。<div>seditflagdelete<div>

これら<div>が存在する場合はクリアする必要があるため、そこに新しい<div>ものを追加できます。私は に精通していますが、上記のクラスと親部分でremove()複数を見つけることに行き詰まっています。<div>

すべてがそこにあるとは考えにくいので、この例のためにハードコーディングしました。

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Side bar poll thingy</title>
<script type="text/javascript" src="http://localhost/site/scripts/jQueryCore.js"></script>
<script type="text/javascript">
$(document).ready(function() {
    $(".add").click(function() {
        // Find and remove all div's with classes flag, edit, delete, that may appear after the </div>
        // containing the <span> that was clicked 

    });
});
</script>
</head>
<body>

<div id="container">

    <div class="h1" data-id="1">Teachers <span class="add" data-id="US01">Add New</span></div>
    <div class="flag">Flag</div>
    <div class="edit">Edit</div>
    <div class="h2" data-id="2">Who is your favorite Math teacher? <span class="add" data-id="US02">Add New</span></div>
    <div class="flag">Flag</div>
    <div class="edit">Edit</div>
        <br>
    <div class="h1" data-id="8">Restaurants <span class="add" data-id="US10">Add New</span></div>
    <div class="flag">Flag</div>
    <div class="edit">Edit</div>
    <div class="h2" data-id="9">Which is your favourtie restaurant in town? <span class="add" data-id="US20">Add New</span></div>
    <div class="flag">Flag</div>
    <div class="edit">Edit</div>

</div>

</body>
</html>
4

2 に答える 2

3

試す

$(document).ready(function() {
    $(".add").click(function() {
        // Find and remove all div's with classes flag, edit, delete, that may appear after the </div>
        // containing the <span> that was clicked 

        var $this = $(this);
        $this.parent().nextUntil('div:has(.add)', '.flag, .edit, .delete').remove();
        //$this.parent().nextUntil('div:h1', '.flag, .edit, .delete').remove();
    });
});

デモ:フィドル

于 2013-09-06T06:18:22.297 に答える
1
$(".add").click(function() {
    $(this).parent().nextAll('.flag, .edit, .delete').remove();
});

フィドル

于 2013-09-06T06:20:21.477 に答える