onchange找到这个父母

时间:2010-07-28 09:31:11

标签: jquery parent

我有几个选择框(至少5个)具有以下结构

<li>
   <div>
      <select name="sb[]">...</select>
   </div>
</li>

当某人改变我希望进行ajax调用时,传递所选值并将父li的内容替换为来自ajax的html接收。

我尝试了以下

onchange="
    $.get('file.php', { action: 'dothis'}, function(html) { 
      $(this).parent('li').html(html);
    });
"

但无效

任何帮助

2 个答案:

答案 0 :(得分:6)

$('select[name="sb[]"]').change(function(){
   var $this = $(this);
   $.get('file.php', { action: 'dothis'}, function(html) { 
      $this.closest('li').html(html);
    });
})

答案 1 :(得分:1)

如果你真的想要,你仍然可以在onchange属性中执行此操作。问题是(如所指出的)双重问题:首先,ajax回调中的这个与改变事件处理程序中的不一样,其次你应该使用nearest()或parents():

onchange="
    var select = $(this);
    $.get('file.php', { action: 'dothis'}, function(html) { 
      select.closest('li').html(html);
    });
"

onchange="
    $.get('file.php', { action: 'dothis'}, $.proxy(function(html) { 
      $(this).closest('li').html(html);
    }, this));
"