快速JQuery问题 - 用.find更改值

时间:2011-03-02 15:42:57

标签: jquery

我有这个代码。

$(".setHide").click(function () {
  $('.newSet').find('input[type=text]').val('');
  $(this).parent().hide();

它将检测到.setHide类的链接上的点击,然后:

1)清空.newSet div中的任何字段

2)隐藏.newSet div

我的问题是我有几个.newSet div打开,所以所有div中的所有字段都被清空。如何仅清空当前div中单击.setHide链接的字段?

感谢您的帮助!

6 个答案:

答案 0 :(得分:2)

而不是:

$('.newSet').find('input[type=text]').val('');

试试这个:

$(this).find('input[type=text]').val('');

答案 1 :(得分:1)

使用parents()方法,查看jQuery Documentation

的工作原理
$(".setHide").click(function () {
  $(this).parents(".newSet")
         .hide()
         .find('input[type=text]')
         .val('');
})

答案 2 :(得分:0)

$(".setHide").click(function(){
  var $div = $(this).parent().hide();
  $('.newSet input[type="text"]', $div).val('');
});

这将清除.newSet内容.setHide内的所有输入。

答案 3 :(得分:0)

您可以为选择器提供一个元素来开始搜索,在这个实例中,您希望它从当前元素开始。

$('.newSet', this).find('input[type=text]').val('');

答案 4 :(得分:0)

$(this).closest('.newSet').find('input[type=text]').val('');

答案 5 :(得分:0)

$('.setHide').click(function() {
  var $newSet = $('.newSet', $(this));
  $newSet.hide().find('input[type=text]').val('');
});