jQuery 选择父级
这可能是一个重复的问题,但是我确实进行了搜索,并且得到了很多不同的答案,以至于我不知道该使用哪个或如何执行此操作。
<?
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
保留旧标记。后者相当古怪,使用以下脚本。
Keep the old markup. The later one is quite cranky and use the following script.
回到原来的方法,并在 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.要获取元素的父元素,您只需使用
$(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');