jQuery的:
$('.clickhere').click(function(e){
e.preventDefault();
$(this).closest('.row').children('.abc').hide(); // working
$(this).closest('.row').children('.abc').children('input').value = ''; // not working
$(this).closest('.bookingrow').children('.addressbox').children('input').value(''); // alternative - not working
});
HTML
<div class="row">
<div class='abc'>
<input type='text' class='unknown' />
</div>
<div class="clickhere">hide</div>
</div>
我的目标是,如果我点击&#34; clickhere&#34;班级,内容&#34; abc&#34; class会隐藏以及客户在这些输入框中添加的任何内容,它们都会很清楚。
相同的html在同一表单上多次使用。这就是使用&#34; $(this)&#34;。的原因 任何解决方案我做错了什么? 提前谢谢。
答案 0 :(得分:1)
您需要使用.val()来设置值,jQuery方法通常会返回一个jQuery对象而不是dom元素引用,因此您将没有正确调用.value
。
$(this).closest('.row').find('.abc input').val('');
所以
$('.clickhere').click(function (e) {
e.preventDefault();
//cache the value of .row since it is used multiple times
var $row = $(this).closest('.row');
$row.children('.abc').hide(); // working
$row.find('.abc input').val('');
});