1

<div class="move">I was moved to the parent.</div>次のコードでは、 をクリックしたときに、クリックした要素の親の後に を移動するにはどうすればよいですかAdd New

after()私はすべて正しいですが、親に移動する必要がある部分を実行できません。

助けていただけますか?

<!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() {
    $("#container").find('.flag, .edit, .delete').remove();
    $(this).parent("div").after(".move");

    });
});
</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="h2" data-id="2">Who is your favorite Math teacher? <span class="add" data-id="US02">Add New</span></div>
        <br>
    <div class="h1" data-id="8">Restaurants <span class="add" data-id="US10">Add New</span></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="move">I was moved to the parent.</div>
</div>
</body>
</html>
4

3 に答える 3

2

.after()セレクターを受け入れません。現在.move、選択した要素の後に文字列を挿入しています。.insertAfter()代わりにメソッドを使用できます。

$(".move").insertAfter(this.parentNode);

http://jsfiddle.net/RYzpG/

于 2013-09-08T08:13:29.917 に答える
1

このフィドルを試してみてくださいhttp://jsfiddle.net/QP3MZ/

$(document).ready(function () {
    $('.add').click(function () {
        $("#container").find('.flag, .edit, .delete').remove();
        var $move = $('#container .move');
        $(this).parent("div").after($move);
    });
});
于 2013-09-08T08:16:02.300 に答える
1

このコードは機能するはずです。

$(document).ready(function() {
    $('.add').click(function(e) {
        e.preventDefault();
        $("#container").find('.flag, .edit, .delete').remove();
        $('.move').insertAfter($(this).parent());
        //Or (Note we have to pass a jQuery element inside after, if we pass string then it will copy the string instead)
        //$(this).parent('div').after($('.move'));
    });
});

また、ここにjsfiddleがあります。あなたのものが機能しなかった理由は.after、jQuery が HTML 文字列として扱う文字列を 内に渡しているためです。jQuery 要素または DOM 要素を渡す必要がありました。こちら を参照してください

于 2013-09-08T08:28:50.250 に答える