jQuery OR运算符混淆
jQuery OR operator confusion
<div id="my-nav-wrapper" class="noindex">
<ul>
<li><a href="http://www.dynamicdrive.com">Item 1</a></li>
<li><a href="#">Folder 0</a>
<ul>
<li><a href="#">Sub Item 1.1</a></li>
<li><a href="#">Sub Item 1.2</a></li>
<li><a href="#">Sub Item 1.3</a></li>
<li><a href="#">Sub Item 1.4</a></li>
<li><a href="#">Sub Item 1.2</a></li>
<li><a href="#">Sub Item 1.3</a></li>
<li><a href="#">Sub Item 1.4</a></li>
</ul>
</li>
</ul>
</div>
var jQmainmenu = $("#my-nav-wrapper ul");
var settings = {classname: "whatever"};
alert("Before: " + jQmainmenu.parent().get(0).className);
jQmainmenu.parent().get(0).className += settings.classname || "ddsmoothmenu";
alert("After: " + jQmainmenu.parent().get(0).className);
我想做的是,如果 settings
动态对象的 classname 属性是 null/falsey,则 class name 'ddsmoothmenu' 需要是apended
到现有的其他任何 settings.classname 值。
jQmainmenu.parent().get(0).className += settings.classname || "ddsmoothmenu";
此声明有效吗?它似乎有效,但我只是想确保可以使用这样的语法吗?
我知道我可以做如下作业:
jQmainmenu.parent().get(0).className = settings.classname || "ddsmoothmenu";
这在语法上是正确的,但不是我想要的,因为它本质上是 replaces
元素上现有的 class 值。
做
jQmainmenu.parent().addClass(settings.classname || "ddsmoothmenu");
并且 jQuery 将解决浏览器的所有问题(例如,并非所有 IE 版本都会直接更新 className)
<div id="my-nav-wrapper" class="noindex">
<ul>
<li><a href="http://www.dynamicdrive.com">Item 1</a></li>
<li><a href="#">Folder 0</a>
<ul>
<li><a href="#">Sub Item 1.1</a></li>
<li><a href="#">Sub Item 1.2</a></li>
<li><a href="#">Sub Item 1.3</a></li>
<li><a href="#">Sub Item 1.4</a></li>
<li><a href="#">Sub Item 1.2</a></li>
<li><a href="#">Sub Item 1.3</a></li>
<li><a href="#">Sub Item 1.4</a></li>
</ul>
</li>
</ul>
</div>
var jQmainmenu = $("#my-nav-wrapper ul");
var settings = {classname: "whatever"};
alert("Before: " + jQmainmenu.parent().get(0).className);
jQmainmenu.parent().get(0).className += settings.classname || "ddsmoothmenu";
alert("After: " + jQmainmenu.parent().get(0).className);
我想做的是,如果 settings
动态对象的 classname 属性是 null/falsey,则 class name 'ddsmoothmenu' 需要是apended
到现有的其他任何 settings.classname 值。
jQmainmenu.parent().get(0).className += settings.classname || "ddsmoothmenu";
此声明有效吗?它似乎有效,但我只是想确保可以使用这样的语法吗?
我知道我可以做如下作业:
jQmainmenu.parent().get(0).className = settings.classname || "ddsmoothmenu";
这在语法上是正确的,但不是我想要的,因为它本质上是 replaces
元素上现有的 class 值。
做
jQmainmenu.parent().addClass(settings.classname || "ddsmoothmenu");
并且 jQuery 将解决浏览器的所有问题(例如,并非所有 IE 版本都会直接更新 className)