我想使用"这个"我的jquery函数中的关键字,但它对我不起作用......
我尝试过以下方法:
1 ... 不起作用......
function getRequest() {
var ReqPlace = $(this).parent('div.reqHere').parent('div.allReqs').children('div.reqHere');
}
2 .. 不起作用......
var that=this; //also tried var that=$(this);
function getRequest() {
var ReqPlace = $(that).parent('div.reqHere').parent('div.allReqs').children('div.reqHere');
}
3 .. 工作,但这次我使用了一个按钮
<input type="button" onclick="getRequest(this);" />
function getRequest(that) {
var ReqPlace = $(that).parent('div.reqHere').parent('div.allReqs').children('div.reqHere');
}
上面的第3步工作得很好,但我不需要按钮有没有其他方法可以使用&#34;这个&#34;功能内的关键字
由于
答案 0 :(得分:1)
这个返回调用它的对象的实例。
在你的情况下,它在语句1 中不起作用,因为出于某种原因你无处不在地调用了这个并且返回了函数的实例,这就是为什么它不工作
同样适用于声明2 考虑声明
var that = this;
如果这是在函数中,那么也将返回一个函数,这就是它无法正常工作的原因。
最后语句3 的原因是它返回元素的html对象实例,因为该函数是元素的单击事件监听器。请注意,使用语句3 在函数中调用 this 也可以。
你总是可以在一个函数中使用 this ,但要记住
$(query)
jQuery(query)
其中查询是HTMLObject或html字符串或css选择器字符串,使用函数发送它会导致错误。
如果你想在函数
中做这样的代码$(this).parent('div.reqHere').parent('div.allReqs').children('div.reqHere');
除非此是HTML对象,否则您应该做的是:
<div class='somedivinyourtemplate' id='hello'>
</div>
function () {
$('#hello').parent('div.reqHere')
.parent('div.allReqs').children('div.reqHere')
}
或只是简单地输入您要选择的元素的ID。
希望能帮助您了解其工作原理
答案 1 :(得分:-1)
如果你想使用&#34;这个&#34;在jquery
为按钮
提供ID$ionicLoading
然后
.controller('myCtrl', function($scope, $ionicLoading) {
$scope.showLoading = function() {
$ionicLoading.show({
template: 'Loading...'
});
};
$scope.hideLoading = function(){
$ionicLoading.hide();
};
});