【发布时间】:2015-01-02 20:57:46
【问题描述】:
<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 动态对象的类名属性为 null/falsey,则无论 settings.classname 的值如何,类名 'ddsmoothmenu' 都必须是现有的 apended。
jQmainmenu.parent().get(0).className += settings.classname || "ddsmoothmenu";
这个陈述是一个有效的陈述吗?它似乎有效,但我只是想确保可以使用这种语法?
我知道我可以像下面这样做作业:
jQmainmenu.parent().get(0).className = settings.classname || "ddsmoothmenu";
这在语法上是正确的,但不是我想要的,因为它本质上是 replaces 元素上的现有类值。
【问题讨论】:
-
您是否研究过 jQuery
.addClass()、.removeClass()和.hasClass()方法? -
jQuery 是一个没有运算符的 JavaScript 库。
-
我有并且我知道它们可供我使用,但这是针对某人编写的旧插件,我只想修改插件以附加类名而不是替换。
-
如果将名称附加到原始类名字符串,则必须确保添加空格字符。这真的不是最好的做事方式。
-
@Pointy 告诉我你会怎么做??
标签: javascript jquery operator-keyword