$(this)在js函数中无效,茫然了,求高手支招
发布网友
发布时间:2022-05-06 16:32
我来回答
共4个回答
热心网友
时间:2022-04-22 16:43
xxxx()在被调用时this是指向window的,如果要想指向被点击的元素,一般是将this作为参数传入,例如:
<a href="#" onclick="xxxx(this)">点击回放<img src="img/18.gif" width="18" height="18" /></a>
function xxxx(e){
var mmm=$(e);//这里就可以得到被点击的元素了
$(mmm).find("img").attr("src","img/about.jpg")
}
热心网友
时间:2022-04-22 18:01
<script src="js/jquery-1.8.0.min.js"></script>
<script>
function xxxx(e){
var mmm=$(e);//------alert(mmm)提示object,但是find(img)就提示undefind。如果使用$("a").click(function(){})的话就能实现效果。
mmm.find("img").attr("src","img/about.jpg")
}
</script>
<h3><a href="#" onclick="xxxx(this)">点击回放<img src="img/18.gif" width="18" height="18" /></a></h3>
你要得到的对象是被点击的a标签,但是你a标签是调用一个js函数,而js函数内的this是表示当前函数本身,那么,当前函数本身怎么能找到你的图片标签什么的呢?
例外,你的代码也可以这样写
<script src="js/jquery-1.8.0.min.js"></script>
<script>
$(function(){
$('h3 a').click(function(){
$(this).find("img").attr("src","img/about.jpg") ;
return false;
})
})
</script>
<h3><a href="./">点击回放<img src="img/18.gif" width="18" height="18" /></a></h3>
热心网友
时间:2022-04-22 19:35
$(this) 要在
$("selector").click(function(){
var $this=$(this);
}); 这种情况下写
html改为:<h3><a href="#" onclick="xxxx(this)">点击回放<img src="img/18.gif" width="18" height="18" /></a></h3>
js:
function xxxx(e){
var mmm=$(e);
.........
}
热心网友
时间:2022-04-22 21:27
对的, 有两种方法解决。
1. 如 belt217 们学说的, 你要在onclick="xxxx(this)" 这里加个this
2. function xxxx(e){
var e = e || window.event;
var tag = e.target || e.srcElement;
var mmm = $(tag);
}