93 我目前正在尝试查找元素父级的父级。我点击了一个链接,该链接位于<td>,我想获取该<tr>对象。 为什么“ $(this).parent()。parent()”不起作用?会怎样 谢谢, 布伦丹 编辑:看来我的语法中的错误是把整个事情扔掉了。“ $(this).parent()。parent()”实际上可以工作,但是我最后还是考虑了$(this).closest('tr')“,因为这似乎是最有效的解决方案。 javascript jquery — 牛乳 source 1 您能否发布代码,以便我们了解为什么您的父选择器不起作用? — TStamper
221 最好的方法可能是使用closest: $(this).closest('tr'); 查看文档: Closest的工作方式是先查看当前元素,看其是否与指定的表达式匹配,如果匹配,则返回元素本身。如果不匹配,它将继续逐个父级遍历文档,直到找到与指定表达式匹配的元素。如果找不到匹配的元素,则不会返回任何元素。 — 保罗·贝尔甘蒂诺 source
20 它应该工作。您也可以尝试$(this).parents(tag),其中tag是要查找的标签。 例如: $(this).parents("tr:first") 将找到最接近的tr“上链”。 — 菲利普·莱拜特 source
9 应该可以...您可以尝试 $(this).parents(':eq(1)'); .parents(selector)表示获取与选择器匹配的所有祖先 和:eq(1)表示找到列表中的第一个(零索引,所以第二个)元素 — 拉丹 source 您可以尝试对此发出警报,以确保它是html锚标记。尝试做:alert('anchor html('+ $(this).html()+')'); — Lathan
6 过去,该代码段对我来说是有效的: $(this).parent().parent(); 发布一些代码给我们,看看某处是否可能还有另一个问题... — 加布里埃尔·赫利(Gabriel Hurley) source 我同意这一点。我可以$(this).parent().parent()毫无问题地使用它 — -DrewT
2 如果您对父级有任何类型的ID /类,则可以使用parent(),但这将使您所有的父级都达到<body>,除非您进行filter()或以其他方式停止它 $(this).parents('.myClass'); 希望这可以帮助某人:) — 阿比拉什夫 source
1 尝试将$(this).parent()包装到类似$($(this).parent())的jQuery对象中,我经常发现需要这样做以确保我有一个有效的jquery对象。从那里,您应该可以控制父母的父母,或者可以使用prev()。 — 克里斯蒂安·尼森 source 8 这是完全没有意义的。您正在做的是通过创建另一个jQuery对象来浪费时间... — James
1 var getParentNode = function(elem, level) { level = level || 1; for (var i = 0; i < level; i++) { if (elem != null) { elem = elem.parentNode; } } return elem; } — 亚历克斯·波罗 source
0 .closest() 当您具有相同的元素构造时,并不是总是最好的选择。 <div> <div> <div> </div> </div> </div> 您可以做父母的父母,这很容易: var parent = $('.myDiv').parent(); var parentParent = $(parent).parent(); var parentParentParent = $(parentParent).parent(); 等等 — Web包装 source