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,我试图3通过 ajax 将这个网站的 id () 传递给另一个脚本。

$('.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 标头时,我可以看到 的值为idnull 所以显然我尝试设置它的尝试是错误的。

如您所见,我在实际元素中具有 id以及另一个具有相同值的li类跨度。id

使用哪一个来实现这一功能并不重要。

谢谢。

4

4 回答 4

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

Closest 找到$(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 回答