我在$.get()
回调中捕获全局变量的值时遇到了一些麻烦:
<div class="block" id="blog"></div>
<div class="block" id="music"></div>
<div class="block" id="video"></div>
$('div.block').each(function() {
$this_id = $(this).attr('id');
alert($this_id); // outputs: blog, music, video
$.get('test.php', {id: $this_id}, function(data) {
alert($this_id); // outputs: blog, blog, blog (WHY?)
$('div#' + $this_id).html(data);
});
});
我正在尝试获取HTML内容并将其插入到每个块 div中,但 $ this_id 在调用{{1}内部时不会被更改}}。任何人都能解释一下吗?
答案 0 :(得分:0)
您必须在函数范围内定义 $ this_id ,否则它将默认为全局变量。只需改变一下:
$this_id = $(this).attr('id');
到此:
var $this_id = $(this).attr('id');
养成明确宣布所有变量的习惯是个好主意......以这种方式更容易跟踪它们。