代码之家  ›  专栏  ›  技术社区  ›  kevtrout

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

  •  5
  • kevtrout  · 技术社区  · 15 年前

    当用户单击下面“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 回复  |  直到 15 年前
        1
  •  10
  •   Jeff Meatball Yang    15 年前

    最近(…)获取最近的父节点,而不是最近的兄弟节点。

    事实上,有多种方法可以满足你的需求。

    试试这些:

    var contentId = $(this).siblings("input[name='id']").val();
    
    var contentId = $(this).parent().children("input[name='id']").val();
    
    var contentId = $(this).prev().prev().val();
    
        2
  •  2
  •   Butifarra    15 年前

    See complete solution here.

    你可以移动 id 属性到包含 <li> ,移除隐藏字段,只需使用:

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

    这样做的好处是,将来你可以添加其他动作,比如“编辑”等,而无需担心兄弟姐妹的位置。

        3
  •  0
  •   tags2k    15 年前

    价廉物美:

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