Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript添加(而不是替换)css类_Javascript_Jquery_Css_Menu - Fatal编程技术网

使用javascript添加(而不是替换)css类

使用javascript添加(而不是替换)css类,javascript,jquery,css,menu,Javascript,Jquery,Css,Menu,我使用的是ddsmoothmenu,它的构造方式是,可以通过插件将类名动态添加到父菜单容器中,并且一旦该类应用到父容器中,所有css也将应用到菜单中。 以下是ddsmoothmenu传递类名的方式: <div id="myMenu"> <ul> <li>.....</li> </ul> </div> 到目前为止还不错。但是我需要在菜单容器中添加一个'noindex'类。我认为简单地添加标记很容易,但问题是

我使用的是ddsmoothmenu,它的构造方式是,可以通过插件将类名动态添加到父菜单容器中,并且一旦该类应用到父容器中,所有css也将应用到菜单中。 以下是ddsmoothmenu传递类名的方式:

<div id="myMenu">
  <ul>
     <li>.....</li>
  </ul>
</div>
到目前为止还不错。但是我需要在菜单容器中添加一个'noindex'类。我认为简单地添加标记很容易,但问题是插件替换了我的类,并添加了上面“classname”参数提供的任何内容

插件本身:这一行代码是罪魁祸首:

$mainmenu.parent().get(0).className = setting.classname || "ddsmoothmenu"
其中,
$main menu
基本上是无序列表

我知道我可以做一个简单的+=来连接类名。但我不确定在上述情况下是否可行,因为它具有
三元if..else设置

我可以执行
$main menu.parent().get(0).className+=setting.className | |“ddsmoothmenu”


我想要像上面这一行那样的东西,这样我在标记中硬编码的类就可以保留,而插件添加的类就可以简单地附加到我直接在标记中添加的类中?

下面是jquery api文档中关于addclass函数的描述:

描述:将指定的类添加到每个 匹配元素

添加的版本:1.0.addClass(className)className类型:字符串1或 要添加到的class属性中的更多空间分隔类 每个匹配的元素

新增版本:1.4.addClass(函数)函数 类型:函数(整数索引,字符串currentClassName)=>字符串A 函数返回一个或多个要添加的以空格分隔的类名 到现有的类名。接收数据的索引位置 元素和现有类名作为参数。在内部 函数,这是指集合中的当前元素

下面是jquery的addclass函数的一个使用示例,它似乎完全符合您的要求

$( "p" ).last().addClass( "selected" );
(唉,总是忘了我不能发布HTML)

本质上,它只是将指定的类附加到选定的元素上,而不删除任何其他类


是指向api文档的链接

您所要做的就是获取当前类名,在其中添加一个空格,然后添加第二个类名。我知道您希望使用库,但纯Javascript可以轻松做到这一点:

function addclass(name,id) {
    var element = document.getElementById(id); //not sure how you want to obtain your element
    var currentclass = element.className;
    element.className = currentclass + " " + name;
}
同样,不确定如何选择文档对象,但只要在类名之间添加空格,一切都应该很好。

我喜欢使用。它提供了一种向DOM添加或删除类的稳定方法。好的方面是,它为没有类列表功能的浏览器(如IE8)提供了一个后备方案

如果您只是在查找代码段:

addClass = function( elem, c ) {
    elem.classList.add( c );
};


你为什么不能使用jquery?我可以使用jquery。在jQUery中如何执行类似的操作
$main menu.parent().get(0).className+=setting.className | | |“ddsmoothmenu”
我知道这在语法上可能不正确,你知道我要说什么..好的,它已被删除
addClass = function( elem, c ) {
    elem.classList.add( c );
};
addClass = function( elem, c ) {
    elem.className = elem.className + ' ' + c;
};