0

これが私のマークアップの例です:

<li class="websites" id="3">
    <span class="id">3</span>
    <span><a href="http://www.google.com"><span class="url">www.google.com</span></a></span>
    <span class="action"><span class="edit">edit</span> | <span class="delete">delete</span></span>
</li>

これが私のjQueryで、このWebサイトのID(3)をajax経由で別のスクリプトに渡そうとしています。

$('.delete').click(function(){
        var id = $(this).find('span.id').html();

        $.ajax(
            {
                type:    "POST",
                url:     "edit.php",
                data:    ({"id":id}),
                cache:   false,
                success: function(message)
                {
                    $('#'+message).fadeOut('slow');                 
                } // end AJAX return
            }); // end AJAX call
    });

POSTヘッダーを確認すると、の値idがnullであることがわかります。そのため、設定しようとした試みが間違っていることは明らかです。

ご覧のとおり、実際の要素にIDがあり、同じ値を持つliクラスを持つ別のスパンもあります。id

この機能にどちらを使用するかは問題ではありません。

ありがとう。

4

4 に答える 4

4
var id = $(this).closest('li.websites').attr('id');

最も近いものは、セレクターに一致する祖先を検索$(this)します。あなたの場合、それliはクラスにありますwebsites

http://api.jquery.com/closest/

于 2012-05-22T09:03:13.590 に答える
2

このセレクターを試すことができます

var id = $(this).closest('li').attr('id');
于 2012-05-22T09:06:10.713 に答える
2

テスト済み、動作します。

<script type="text/javascript">

    $(document).ready(function(){

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

         var id = $(this).parents('li.websites').children('span.id').html();


        });


    });

</script>
于 2012-05-22T09:08:03.253 に答える
1

試す

var id = $(this).parent().parent().get(0).id;
于 2012-05-22T09:05:31.180 に答える