我正在尝试在用户点击一个li的项目后拉取ul的id ...
这是我的jquery
$('.mitm').click(function () {
var itmlvl = $(this).text();
var itmp = $(this).parent().attr("id");
alert(itmlvl + " " + itmp);
});这是我的HTML
<div id="menu_arrow" class="vocab_arrow"></div>
<ul class="lvldropmnu" id="uvocab">
<a href="#"><li class="mitm">1</li></a>
<a href="#"><li class="mitm">2</li></a>
</ul>
</div>我使用.find()等方法尝试了几种不同的组合,但是没有成功,我总是在对itmp变量的警告中得到一个“未定义的”。
发布于 2014-02-04 06:29:48
您的HTML是不正确的,所以您不能期望得到一致的结果。列表只能包含列表项,而不能包含链接。
将链接放在列表项中:
<div id="menu_arrow" class="vocab_arrow"></div>
<ul class="lvldropmnu" id="uvocab">
<li class="mitm"><a href="#">1</a></li>
<li class="mitm"><a href="#">2</a></li>
</ul>
</div>这也将使列表成为列表项的父级,因此您的corrent代码将起作用。
发布于 2014-02-04 06:28:56
$(this)的父级是,您需要使用
var itmp = $(this).parent().parent().attr("id");或
var itmp = $(this).parent('ul').attr("id");或
var itmp = $(this).closest("ul").attr("id");发布于 2014-02-04 06:33:05
$(function () {
$('.mitm').click(function () {
var itm = $(this),
itmlvl = itm.text(),
itmp = itm.parent().attr("id");
alert(itmlvl + " " + itmp);
});
})();
<ul class="lvldropmnu" id="uvocab">
<li class="mitm">
<a href="#">1</a>
</li>
<li class="mitm">
<a href="#">2</a>
</li>
</ul>https://stackoverflow.com/questions/21539131
复制相似问题