【发布时间】:2016-07-29 23:24:14
【问题描述】:
我有下面给出的以下 DOM 结构,我想在这两种情况下访问超链接按钮 (a)。我已将标题(header1 和 recordHeader1)都设为可点击(光标:指针)。因此,如果我单击 header1 中的任何地方(例如,如果我单击 headerTitle)或 recordHeader1 中的(名称,job_title),我想找到超链接按钮并执行某些单击功能。可能会有更多这样的场景,但在所有场景中,都有一个像下面给出的父标题,并且父标题总是在 DOM 中的某处具有超链接元素。请让我知道我在这里做错了什么。
场景 1:
<div class="header1">
<a href="#" class="downArrow k-icon k-minus"></a> <!-- This element -->
<img class="foundIcon" src="https://google.com">
<div class="headerTitle">Contacts</div>
</div>
场景 2:
<div class="recordNew">
<div class="recordHeader1">
<ul>
<li>
<div class="arrowContainer">
<a href="#" class="downArrow k-icon k-minus"></a> <!-- This element -->
</div>
</li>
<li>
<div class="nameContainer">
<span class="name">John Doe </span>
</div>
</li>
</ul>
</div>
<span class="job-title">Marketing Professional </span>
</div>
</div>
我尝试了什么?
// This is a generic function that makes the header clickable based on any element click
function makeRowClickable() {
$(".headerTitle, .name, .job_title, .foundIcon").on("click", function(e) {
// doesn't seem to work and find the correct element
console.log($(e.target).closest(".header1").find(".downArrow"));
});
}
【问题讨论】:
-
第二个示例中没有
header1类的元素,所以.closest(".header1")找不到任何东西 -
是的,同意,这只是解释我想要实现的目标的一个例子。
-
可点击框中是否总是只有一个链接?
-
不@MichaelKunst,可能有很多,所以我不能只用'a'来定位它。然而,'a' 总是有一个名为“downArrow”的类,我在我的问题/示例中提到过。
-
.closest只会找到与选择器匹配的最近的祖先,而不是兄弟姐妹、祖先兄弟姐妹或祖先兄弟姐妹的孩子
标签: javascript jquery html jquery-traversing