如何用Jquery选择相邻隐藏输入的值?

时间:2009-06-20 18:18:54

标签: php javascript jquery

当用户点击以下“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”。

3 个答案:

答案 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)

See complete solution here.

您可以将id属性移至包含<li>,删除隐藏字段,然后使用:

var contentId = $(this).parent().get(0).id;

这里的优势在于,将来您可以添加其他操作,例如“编辑”等,而无需担心兄弟姐妹的位置。

答案 2 :(得分:0)

好又便宜:

var contentId = $(this).parents('li:first').find('.contentId').val();