我有几个选择框(至少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);
});
"
但无效
任何帮助
答案 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));
"