原谅我的愚蠢,但有人可以向我解释如何使用this
关键字隐藏元素?
例如,这是有效的:
jQuery(document).ready(function($){
if($('.someclass').length==1){
$('.someclass').hide();
}
});
但这对我来说是不行的:
jQuery(document).ready(function($){
if($('.someclass').length==1){
$(this).hide();
}
});
谢谢!
答案 0 :(得分:2)
您是否需要使用this
(在这种情况下,请参阅其他答案)或者您只是想避免选择器重复?那怎么样?
jQuery(document).ready(function($){
var elem = $('.someclass');
if(elem.length == 1){
elem.hide();
}
});
答案 1 :(得分:2)
要回答您的问题,当'.someclass'对象是调用对象时,您只能引用'this'。你可以在jQuery中看到这个内部事件和大多数回调相关的东西。
即:
$('.someclass').each(function() {
$(this).hide();
});
$('.someclass').click(function() {
$(this).hide();
});
但是,通过执行此操作,您将对对象和任何匹配的对象进行两次包装。
执行代码所代表的操作的最佳方法是完全删除if语句,因为此处不需要查询jQuery对象的长度。 jQuery不对空的结果集执行函数,所以简单......
jQuery(document).ready(function($){
$('.someclass').hide();
});
......只需要一切。
答案 2 :(得分:2)
如果您试图避免重复,那么它应该像以下一样简单:
$(function() {
$('.someclass').hide();
});
您根本不需要检查length
。如果没有元素,jQuery足够聪明,不会做任何事情。
答案 3 :(得分:0)
嗯,您不需要为此目的使用this
- 另一方面请考虑以下示例:
$('.someClass').each(function(){
// maybe some logic here
$(this).hide();
});
在这种情况下,this
引用每个循环中的当前DOM元素。
答案 4 :(得分:0)
你可以这样做:
$('.someclass').each(function() {
$(this).hide();
});
答案 5 :(得分:0)
变量this
必须位于事件处理程序,each
方法或类似的东西中。例如:
$('.someclass').each(function () {
$(this).hide();
});