我想从DOM中访问一个元素,其父元素是我当前元素的父元素的子元素.Messed?
看这里:
<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
中的隐藏输入。
注意:所有这些都在循环中,因此不建议任何绝对元素路径
可能是我搞砸了我的问题随时编辑或建议。
提前致谢
答案 0 :(得分:1)
我认为解决方法是找到最接近的tr2
元素,然后在其中找到.td2 input
元素
$(this).closest('.tr2').find('.td2 input')
答案 1 :(得分:1)
$('.td3 input').change(function(){
$(this).closest('.tr2').find('input:hidden');
});
参考
答案 2 :(得分:0)
$(".tr2").on("click","td3.input[type='text']",function(){
$(this).closest(".tr2").find(".td2 input:hidden");//here you get hidden input
});
答案 3 :(得分:0)
$('.tr2 .td2 input')
这个选择器可以帮助你
答案 4 :(得分:0)
$(this).parent().prev().children('input[type=hidden]')
答案 5 :(得分:0)
尝试这样的事情。
$('.td3 input').change(function(){
$(this).parent().prev().find('input:hidden')//will give you hidden element
});
答案 6 :(得分: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'));
});