使用 JavaScript 添加(而不是替换)CSS 类
add (not replace) css class using javascript
我正在使用ddsmoothmenu,它的构造方式是可以通过插件将类名动态添加到父菜单容器中,一旦类应用于父容器,所有css也将应用于菜单。以下是 ddsmoothmenu 传递类名的方式:
<div id="myMenu">
<ul>
<li>.....</li>
</ul>
</div>
菜单的渲染由以下内容完成,其中"类名"通过插件传递以动态添加到菜单容器中。
ddsmoothmenu.init({
mainmenuid: 'myMenu',
orientation: 'h',
classname: 'ddsmoothmenu',
contentsource: 'markup'
});
目前为止,一切都好。但是我需要在菜单容器中添加一个"noindex"类。我认为这很容易,我将简单地添加标记,但问题是插件替换了我的类并添加了上述"classname"参数提供的任何内容。
在插件本身中:这行代码是罪魁祸首:
$mainmenu.parent().get(0).className = setting.classname || "ddsmoothmenu"
其中$mainmenu
基本上是无序列表。
我知道我可以做一个简单的 += 来连接类名。但我不确定这在上面是否可行,因为它具有ternary if..else setup
我可以做$mainmenu.parent().get(0).className += setting.classname || "ddsmoothmenu"
想要类似上行的内容,以便我在标记中硬编码的类可以保留,而插件添加的类只是附加到我直接在标记中添加的类?
您所要做的就是获取当前的类名,为其添加一个空格,然后添加第二个类名。我知道你想使用一个库,但普通的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;
}
同样,不确定如何选择文档对象,但只要在类名之间添加空格,一切都应该很好。
以下是 jquery api 文档中关于 addclass 函数的描述:
说明:将指定的类添加到每个集合中匹配的元素。
添加的版本: 1.0.addClass( 类名 ( 类名 类型: 字符串一或更多空格分隔的类要添加到 的类属性中每个匹配的元素。
添加的版本: 1.4.addClass( 函数 ( 函数类型:函数(整数索引,字符串当前类名(=>字符串A返回一个或多个要添加的以空格分隔的类名的函数到现有类名。接收索引位置元素和现有类名作为参数。在函数,这是指集合中的当前元素。
下面是jquery的addclass函数的示例使用,它似乎完全符合您的要求。
$( "p" ).last().addClass( "selected" );
(呃,一直忘记我不能发布HTML(
从本质上讲,它只是将指定的类附加到所选元素,而不删除任何其他类。
这是 api 文档的链接
我喜欢使用classie。 它提供了一种稳定的方式来添加或删除类到 DOM。好消息是,它为没有classList函数的浏览器(例如IE8(提供了回退。
如果您只是寻找代码片段:
addClass = function( elem, c ) {
elem.classList.add( c );
};
和
addClass = function( elem, c ) {
elem.className = elem.className + ' ' + c;
};
- 在向下滚动JS/HTML/CSS wordpress网站时替换徽标图像
- 将css属性替换为变量
- 使用Jquery/Javascript替换CSS属性
- 制作一个chrome扩展,替换css和js元素
- CSS转换后用新内容替换空白
- 如何在 javascript 替换新图像/标题后正确显示 css 工具提示
- 循环并用parseJSON数据替换CSS
- 通过Ajax上传照片后替换css背景图像
- 用我的类动态替换css类
- 如何使用angularjs值替换css类值
- 替换css背景url
- 如何在检测到用户代理后使用jquery替换css
- 如何替换css('background-image')
- 在今天比较后替换CSS's在Javascript中的日期
- 如何使用JQuery替换CSS背景图像并保持渐变
- 在chrome和safari中,Contenteditable用内联样式替换CSS类和规则
- UIWebView.使用javascript替换css属性
- 替换CSS属性为jQuery条件
- 加载页面时替换css类
- Javascript搜索和替换CSS内部