0

我想从 DOM 访问一个元素,其父元素是我当前元素的父元素的子元素。搞砸了?
看这里:

<div class="tr2">
    <div class="td1">
        <input type="checkbox" value="" name="" />
    </div>
    <div class="td2">${index.getKey()[1]}
        <input type="hidden" name="upc" value="${index.getKey()[0]}" id="upc${index.getKey()[0]}" />
    </div>//i want to access this hidden input
    <div class="td3">
        <input type="text" name="categoryInput${counter+1 }" value="${index.getValue().toString().replace('[','').replace(']','');}" class="input" id="ct-input${counter+1 }" placeholder="Select your Category" />
    </div>//from event of this textfield
    <div class="td4"><i class="fa fa-check"></i>
    </div>
</div>

我想td2从文本输入的事件中访问隐藏的输入td3
注意:所有这些都在一个循环中,所以不要建议任何绝对元素路径。
可能是我搞砸了我的问题,请随时编辑或建议。
提前致谢

4

7 回答 7

1

我认为解决方案是找到最接近的tr2元素,然后找到其中的.td2 input元素

$(this).closest('.tr2').find('.td2 input')
于 2013-11-07T07:18:34.603 回答
1

使用.closest()

$('.td3 input').change(function(){
    $(this).closest('.tr2').find('input:hidden');
});

参考

。寻找()

:隐

于 2013-11-07T07:18:48.833 回答
0
$(".tr2").on("click","td3.input[type='text']",function(){

$(this).closest(".tr2").find(".td2 input:hidden");//here you get hidden input
});

使用最接近():隐藏

于 2013-11-07T07:18:33.610 回答
0
$('.tr2 .td2 input')

这个选择器应该可以帮助你

于 2013-11-07T07:18:36.390 回答
0

$(this).parent().prev().children('input[type=hidden]')

于 2013-11-07T07:20:33.593 回答
0

尝试这样的事情。

            $('.td3 input').change(function(){
                  $(this).parent().prev().find('input:hidden')//will give you hidden element
            });
于 2013-11-07T07:22:17.040 回答
0

更新:

例如,您可以使用最接近的解决方案或在文本框元素上添加其他属性(hidden-target-id 是隐藏输入的 id):

<input hidden-target-id="upc${index.getKey()[0]}" type="text" name="categoryInput${counter+1 }" value="${index.getValue().toString().replace('[','').replace(']','');}" class="input" id="ct-input${counter+1 }" placeholder="Select your Category" />

-

$('input[type=text]').on('change', function() {
    var yourHiddenInput = $("#" + $(this).attr('hidden-target-id'));
});
于 2013-11-07T07:23:09.790 回答