首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态更改元素的类

动态更改元素的类
EN

Stack Overflow用户
提问于 2017-02-01 23:13:29
回答 1查看 28关注 0票数 0

我正试图为我的网站创建一个版本选择器。我想包括两个选项-颜色选择器和文本对齐选择器。

当单击特定选项时,应该将类应用于稍后在CSS中样式化的主体。

这是它的代码:

HTML:

代码语言:javascript
复制
<div id="picker">
  <ul id="colors">
    <li id="version-6" class="choose-color">version 6</li>
    <li id="version-5" class="choose-color">version 5</li>
  </ul>
  <ul id="align">
    <li id="text-to-center" class="choose-align">text-center</li>
    <li id="text-to-left" class="choose-align">text-left</li>
  </ul>
</div>

联署材料:

代码语言:javascript
复制
$('.choose-color').on('click', function(){
    var switchTo = $(this).attr('id')
    var arrClasses = [];

    $('[class*="version-"]').removeClass(function () {
         console.log(this.className);
        var className = this.className.match(/version-\d+/);
        if (className) {
            arrClasses.push(className[0])
            return className[0];
        }
    }).addClass(switchTo);

});

$('.choose-align').on('click', function(){
    var switchTo2 = $(this).attr('id')
    var arrClasses2 = [];

    $('[class*="text-to-"]').removeClass(function () {
        var className2 = this.className.match(/text-to-\d+/);
        if (className2) {
            arrClasses2.push(className2[0])
            console.log(className2[0])
            return className2[0];
        }
    }).addClass(switchTo2);
});

第一段js代码(颜色选择器)工作得很好,它删除以“version”开头的任何类,然后添加与单击的元素ID相等的类。

我尝试用第二段代码重新创建这种行为,但没有成功。

它只是添加类,而不是删除前一个类。

是某个地方的错误还是整个想法都错了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-01 23:20:24

您的问题是第二个问题中的正则表达式

代码语言:javascript
复制
var className2 = this.className.match(/text-to-\d+/);

\d匹配一个数字。将其更改为. (与任何字符匹配)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41991579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档