Javascript JQuery没有按它应该的方式运行
我正在尝试创建一个“下拉”菜单,在其中单击一个div,它下面的兄弟姐妹将变为可见或消失。它应该非常简单,但出于某种原因给我带来了麻烦Javascript JQuery没有按它应该的方式运行,javascript,jquery,html,Javascript,Jquery,Html,我正在尝试创建一个“下拉”菜单,在其中单击一个div,它下面的兄弟姐妹将变为可见或消失。它应该非常简单,但出于某种原因给我带来了麻烦 $(".dropDownClick").click(function(){ alert($(self)); $(self).next().css("display",(node.css("display")=="inline")?"none":"inline"); }); 此代码返回[object object],然后不会更改下一个同级的显示cs
$(".dropDownClick").click(function(){
alert($(self));
$(self).next().css("display",(node.css("display")=="inline")?"none":"inline");
});
此代码返回[object object],然后不会更改下一个同级的显示css。经过一点测试,我发现$(self).next()
实际上会破坏代码(如果我尝试执行类似于警报($(self).next());
的操作,代码将不会执行)。我想这是因为没有下一个兄弟姐妹?但我的HTML会提出其他建议:
<div class="dropDownClick"><h1>Drop</h1></div>
<div class="dropDown" style="display: none;">
<ul>
<li>1</li>
<li>2</li>
</ul>
</div>
Drop
- 一,
- 二,
调用.next()时,是否应该选择类为“dropDown”的div?它应该是
this
not self,您也可以使用.toggle()而不是手动应用显示值
$(".dropDownClick").click(function () {
$(this).next().toggle();
});
是一个特殊变量,始终可用-但self
/节点
是自定义变量,必须在使用之前声明,否则它将抛出
演示:它应该是
此
非自身,您也可以使用.toggle()而不是手动应用显示值
$(".dropDownClick").click(function () {
$(this).next().toggle();
});
是一个特殊变量,始终可用-但self
/节点
是自定义变量,必须在使用之前声明,否则它将抛出
演示:node从哪里来?你能提供你的代码的JSFIDLE吗?
self
是window
在你使用它显示的上下文中,node从哪里来?你能提供你的代码的JSFIDLE吗?self
是window
在你使用它显示的上下文中,就是这样。哇!这就解释了为什么谷歌很难寻求帮助。你能解释一下self和这个的区别吗?“没有self”-谢谢。考虑到我不是JQuery中最强的,我猜我只是把一些我读过的代码弄混了。(顺便说一句,这是最好的答案)@nnnnnn哦,所以它指的是window.self。这是有道理的。谢谢就这样。哇!这就解释了为什么谷歌很难寻求帮助。你能解释一下self和这个的区别吗?“没有self”-谢谢。考虑到我不是JQuery中最强的,我猜我只是把一些我读过的代码弄混了。(顺便说一句,这是最好的答案)@nnnnnn哦,所以它指的是window.self。这是有道理的。谢谢