在此类下使用jquery更改输入值

时间:2014-11-12 02:29:24

标签: javascript jquery html

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;。的原因 任何解决方案我做错了什么? 提前谢谢。

1 个答案:

答案 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('');
});