jQuery 选择父级

发布于 2024-11-06 01:39:31 字数 949 浏览 3 评论 0原文

这可能是一个重复的问题,但是我确实进行了搜索,并且得到了很多不同的答案,以至于我不知道该使用哪个或如何执行此操作。

<?
if(isset($content))
{
    $i = 1;
    foreach($content as $item)
    {
        echo "<li><a href='#' name='" . $item['id'] . "'>" . $item['title'] . "</a></li>";
        $i++;
    }
}
?>

我使用 jQuery 添加了一个函数到这些链接来处理 ajax 调用。我选择链接如下:

    $("#tips_list ul li a").click(function(e)   { //... }

但是,这没有多大意义,因为现在您必须单击实际文本而不是列表项。所以我想我应该重新构造我的 HTML,以便锚标记围绕 li 标记。

    `<a href="#" name=""><li>foo</li></a>`

然后我相应地更改了我的 jQuery 代码:

    $("#tips_list ul a li").click(function(e)   { //... }

但是,现在,当我单击..时,它会将列表项标记捕获为 $(this);这意味着我无法真正从锚标记中获取名称属性。所以!我需要做的是从 parent 锚标记中获取 name 属性。老实说,我不知道最简单的方法是什么。我对 jQuery 不太有经验。

非常感谢您帮助我!

This might be a duplicate question, however I did search and I got so many different answers that I don't know which to use or how to do this.

<?
if(isset($content))
{
    $i = 1;
    foreach($content as $item)
    {
        echo "<li><a href='#' name='" . $item['id'] . "'>" . $item['title'] . "</a></li>";
        $i++;
    }
}
?>

I've added a function to these links with jQuery to handle an ajax call. I select the links as follows:

    $("#tips_list ul li a").click(function(e)   { //... }

However, this doesn't make a lot of sense because now you have to click on the actual text instead of the list item. So I figured I'd re-structure my HTML so the anchor tag wraps around the li tag.

    `<a href="#" name=""><li>foo</li></a>`

I then changed my jQuery code accordingly:

    $("#tips_list ul a li").click(function(e)   { //... }

However, now, when I click.. it grabs the list item tag as $(this); which means I can't really grab the name attribute from the anchor tag. So! What I need to do is to grab the name attribute from the parent anchor tag. And I honestly have no clue what the easiest way to do this is. I'm not that experienced with jQuery.

Thanks a lot for helping me!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

回梦 2024-11-13 01:39:31

保留旧标记。后者相当古怪,使用以下脚本。

$("#tips_list ul li").click(function(e)   {
    var name = $(this).children("a").attr("name");
    alert(name);
}

Keep the old markup. The later one is quite cranky and use the following script.

$("#tips_list ul li").click(function(e)   {
    var name = $(this).children("a").attr("name");
    alert(name);
}
ぶ宁プ宁ぶ 2024-11-13 01:39:31

回到原来的方法,并在 CSS 中设置 #tips_list ul li a {display:block} 怎么样?这应该使 a 展开并占据整个 li,使整个 li 看起来可以点击。然后你的原始代码应该可以正常工作。

How about going back to the original method, and set #tips_list ul li a {display:block} in your CSS? That should make the a expand and take up the whole li, making the whole li seem clickable. Your original code should then work fine.

无戏配角 2024-11-13 01:39:31

要获取元素的父元素,您只需使用
$(this).parent()
所以我会这样做:
$(this).parent('a').attr('name');

To get the parent of an element you just need to use
$(this).parent()
So I would do this:
$(this).parent('a').attr('name');

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文