【发布时间】:2014-08-27 15:48:59
【问题描述】:
我在理解 JQuery 元素的结构以及如何在 DOM 树中移动时遇到了一些问题。
我的目标是突出显示(背景颜色)点击的链接(a)。 如果“li a”在 ul 内部,它不是主“菜单”ul(表示子菜单链接),那么我想突出显示子菜单链接和顶部菜单链接。
我的 HTML 代码是:
<div id="site">
<div id="koteret">
<div id="top_menu">
<ul id="menu">
<li><a href="welcome.html" id="wel" title="HomePge" >home</a></li>
<li><a href="welcome.html" id="d" title="c">read</a>
<ul class="par">
<li><a href="welcome.html" id="b" title="title" >test</a></li>
<li><a href="Register_client.aspx" id="c" title="add">addRead</a></li>
</ul>
</li>
<li><a href="books.aspx" title="Books" >Books</a>
<ul class="par">
<li><a href="books.aspx" title="Manage">Search</a></li>
<li><a href="Register_book.aspx" title="addbook">Register</a></li>
</ul>
</li>
<li><a href="contact.html" id="a" title="Contact" >CoNTACT</a></li>
</ul>
</div>
</div>
<div id="test">
<iframe id="con" src="welcome.html">ffffffffffffffffffffffffffffffsdfdsfsdfwefwfwfw
fwfwefwe<br />fwefwefw</iframe>
<div id="side_bar">fsfdsfsdf</div>
</div>
<div id="footer">footer</div>
</div>
</body>
至于 JQuery 我试过这个:
$(this).closest("ul").find("a").attr("id"));
还有一些其他版本的父母,但是当我检查警报时,我得到“未定义”或空字符串。 你能帮我理解我的错误在哪里吗? 我确定这是非常简单的事情,我只是找不到它。 谢谢
【问题讨论】:
-
你确定
.find("a")返回任何东西吗?.attr("id")绝对正确 -
如果这是您仅有的 JavaScript,
this将指向window;另外,应该是.prop('id')。 -
我不明白你的主要问题,但你想要的是正确的:jsfiddle.net/n4prdphv?
-
这是你想要做的吗? jsfiddle.net/MelanciaUK/tfL0grer
标签: javascript jquery html css dom