当用户点击以下“li”末尾的img时,我想先获取隐藏输入值的两个元素。
<ul id="theLists">
<li>
<input class="checkbox" type="checkbox" name="row"/>
<input class="contentId" type="hidden" value="64" name="id"/>
<div id="64" class="editable">Peanuts for me</div>
<img src="/img/delete.gif" alt="delete"/>
</li>
</ul>
我试过了:
$(document).ready(function(){
$("#theLists img").click(function(){
var contentId = $(this).closest("input[name='id']").val();
});
无济于事。有任何想法吗?我需要设置一个带有行ID的var,在这种情况下是“64”。
答案 0 :(得分:10)
nearest(...)获取最近的父节点,而不是最近的兄弟节点。
事实上,有多种方法可以做你想做的事。
试试这些:
var contentId = $(this).siblings("input[name='id']").val();
var contentId = $(this).parent().children("input[name='id']").val();
var contentId = $(this).prev().prev().val();
答案 1 :(得分:2)
您可以将id
属性移至包含<li>
,删除隐藏字段,然后使用:
var contentId = $(this).parent().get(0).id;
这里的优势在于,将来您可以添加其他操作,例如“编辑”等,而无需担心兄弟姐妹的位置。
答案 2 :(得分:0)
好又便宜:
var contentId = $(this).parents('li:first').find('.contentId').val();