如何为Javascript字符串添加类名? [英] How do I add a class name to Javascript string?

查看:134
本文介绍了如何为Javascript字符串添加类名?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是一个尝试改变以下代码的JS新手。看起来它正在添加样式属性。我想将类名reveal添加到此字符串或以下。那句法是什么样的?非常感谢你的帮助,伙计们!

I'm a JS newbie trying to alter the following code. It looks like it's adding style attributes. I would like to add the class name "reveal" to this string or below. What would that syntax look like? Many thanks for your help, guys!

 inline = ( elem.domEl.getAttribute( 'style' ) ) ? elem.domEl.getAttribute( 'style' ) + 
'; visibility: visible; ' : 'visibility: visible; '


推荐答案

(我猜)HTML可能看起来像这样:

(I guess) the HTML may look like this:

<div class="some other">

在这种情况下,如果你这样做

In such case, if you do it like

elem.domEl.className = 'reveal';

然后你会得到

<div class="reveal">

课程一些其他带来的所有风格>走了!你绝对不希望这样,对吧?此外,您不需要重复的类名,例如

All styles brought by class some and other are gone! You definitely don't want that, right? Also you don't want repeated classname, something like

<div class="reveal reveal">



所以,这里是解决方案:



最好的方法是使用HTML5 API classList

elem.domEl.classList.contains('reveal') // Check whether element has a classname
elem.domEl.classList.add('reveal') // Add a classname
elem.domEl.classList.remove('reveal') // Remove a classname
elem.domEl.classList.toggle('reveal') // Toggle a classname

如果您仍想在过时的浏览器中运行代码,请尝试以下操作:

If you still want to run the code in out-dated browsers, try these:

// Check whether element has a classname
function hasClass(ele, cls) {
    var clsChecker = new RegExp("\\b" + cls + "\\b");
    return clsChecker.test(ele.className);
}
// Add a classname
function addClass(ele, cls) {
    var clsChecker = new RegExp("\\b" + cls + "\\b");
    if(clsChecker.test(ele.className)) {
        // ele already has the className, don't need to do anything
        return;
    }
    ele.className += (' '+ cls);
}

// Remove a classname
function removeClass(ele, cls) {
    var clsChecker = new RegExp("\\b" + cls + "\\b");
    if(clsChecker.test(ele.className)) {
        // ele does have the className, remove them all (in case repeated)
        ele.className.split(clsChecker).join('');
    }
}

// Toggle a classname
function toggleClass(ele, cls) {
    var clsChecker = new RegExp("\\b" + cls + "\\b");
    if(clsChecker.test(ele.className)) {
        // ele does have the className, remove them all (in case repeated)
        ele.className.split(clsChecker).join('');
    } else {
        // ele doesn't have the classname, add it
        ele.className += (' '+ cls);
    }
}

// Usages
hasClass(elem.domEl, 'reveal') // Check whether element has a classname
addClass(elem.domEl, 'reveal') // Add a classname
removeClass(elem.domEl, 'reveal') // Remove a classname
toggleClass(elem.domEl, 'reveal') // Toggle a classname

这篇关于如何为Javascript字符串添加类名?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆