首先,我已经通过了一些问题与我的标题相同,如this等。但都没能解决我的问题
HTMLpart -
<tr id="row_question_container">
<td valign="top" colspan="2">
<div id="at_test_area-1" class="at_test_area">
<div id="at_questions_container">
<div id="1" class="question_block completed unmarked" style="display: none;">
<!-- Question / Option / Settings etc in nested tables are here -->
</div>
<div id="2" class="question_block completed marked">
<!-- Question / Option / Settings etc in nested tables are here -->
</div>
<div id="3" class="question_block incomplete unmarked" style="display: none">
<!-- Question / Option / Settings etc in nested tables are here -->
</div>
<div id="4" class="question_block incomplete unmarked" style="display: none">
<!-- Question / Option / Settings etc in nested tables are here -->
</div>
</div>
</div>
</td>
</tr>
我试图实现的是获得div
的next/closet id
(使用下一个和上一个按钮导航)具有incomplete
或marked
类。在阅读了类似的问题之后,我尝试使用jQuery,但它返回了undefined
var marked_question = $('#at_questions_container').next('.marked').attr('id');
alert(marked_question);
4条答案
按热度按时间j1dl9f461#
jQuery的
next()
函数将查找#at_questions_container
的兄弟元素,而不是子元素。由于您正在查找
#at_questions_container
的子级,因此应该使用children()
函数,并结合使用:first
选择器:使用
children()
是一种更安全的方法,因为它只搜索一个深度,从而防止返回任何也具有.marked
类的子元素。例如,从jQuery文档:.children()
方法与.find()
方法的不同之处在于,.children()
只向下遍历DOM树的一个层次,而.find()
也可以向下遍历多个层次来选择后代元素(孙元素等)。作为对上述内容的补充,
:first
选择器的使用不是必需的。当调用attr('id')
时,jQuery会自动返回集合中第一个元素的ID属性。r1wp621o2#
对于后代,您应该使用find()或children(),具体取决于您希望进入的深度
ljsrvy3e3#
试试这个:
你想找到at_questions_container的后代,第一个选择器会给予你找到的第一个。next作用于同级元素。
sqougxex4#
尝试: