HTML:
<div class="first" id="first_id">
<div class="second">text sample</div>
<div class="third"><button type="submit" class="some_class" id="some_id">send</button></div>
</div>
Run Code Online (Sandbox Code Playgroud)
jQuery的:
$("#some_id").click(function() {
var test = $(this).closest('.first').attr('id');
..
return false;
});
Run Code Online (Sandbox Code Playgroud)
我想在上面的jquery代码中使用var"test"替换"first"div的内容.就像是:
$("."+test).html('<img src="img/spin.gif">');
Run Code Online (Sandbox Code Playgroud)
但是,当我将这部分代码放在上面的函数中时,它不起作用.我做错了什么?
您正在获取ID,但选择它作为.class选择器(所以它应该是$("#"+test)),但它可以更容易,如下所示:
$("#some_id").click(function() {
$(this).closest('.first').html('<img src="img/spin.gif">');
return false;
});
Run Code Online (Sandbox Code Playgroud)
没有必要再次选择元素,你已经拥有它,所以只需调用.html()你找到的元素就可以了.closest(),更简单,更快捷:)
为了完整起见,你应该做的是:
$("#some_id").click(function() {
$(this).closest('.first').empty().append('<img src="img/spin.gif">');
return false;
});
Run Code Online (Sandbox Code Playgroud)
使用一个.empty()调用将清理click我们所处理的处理程序,否则它将被留在$.cache...这不是一个大问题,但如果你有很多元素,它会加起来,如果可能的话,最好总是清理.
| 归档时间: |
|
| 查看次数: |
33 次 |
| 最近记录: |