Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试为元素找到正确的jQuery选择器_Jquery_Ajax - Fatal编程技术网

尝试为元素找到正确的jQuery选择器

尝试为元素找到正确的jQuery选择器,jquery,ajax,Jquery,Ajax,以下是我的标记示例: <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">&l

以下是我的标记示例:

<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>
当我检查我的文章标题时,我可以看到id的值为null,所以很明显我试图设置它的尝试是错误的

正如您所看到的,我在实际的li元素中有id,再加上另一个具有相同值的类id的span

哪一个用于这一点功能并不重要

谢谢

var id = $(this).closest('li.websites').attr('id');
Closest查找与选择器匹配的$this祖先,在您的例子中,它是li,带有类网站

试一试


你可以试试这个选择器

var id = $(this).closest('li').attr('id');
经过测试,它是有效的

<script type="text/javascript">

    $(document).ready(function(){

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

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


        });


    });

</script>

正确答案已张贴。但是,您确实应该学会调试它。最简单的方法是使用console.log登录您尝试选择的内容,并查看其是否匹配。如果没有,请剪切并尝试更简单的选择。console.log$this.find'span.li'是否输出空列表?请参阅什么是console.log$this。请注意,它没有要搜索的子体。弄清楚你需要以某种方式提升一个层次。然后点击jQuerySelector文档,查看如何实现父级或最近级。@Amadan我非常希望能够正确地+1。一般来说,没有针对提问者的问题进行调试是令人沮丧的。谢谢@Amadan,我以前从未使用过parent或closest,但将来应该不会成为问题。嗯,这会不会选择?
var id = $(this).closest('li').attr('id');
<script type="text/javascript">

    $(document).ready(function(){

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

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


        });


    });

</script>