首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery - removeClass,以

jQuery - removeClass,以
EN

Stack Overflow用户
提问于 2016-06-16 13:42:11
回答 2查看 1.8K关注 0票数 0

现在,我想为谷歌地图中不同的缩放级别设置不同的类。现在它只添加类,不移除以zoom-开头的类,我在这里做错了什么?:

代码语言:javascript
运行
复制
  // setMarkerSize by different zoomLevels
    if (z === 16) { $('.marker').removeClass("[className^='zoom-']").addClass('zoom-16'); }
    if (z === 17) { $('.marker').removeClass("[className^='zoom-']").addClass('zoom-17'); }
    if (z === 18) { $('.marker').removeClass("[className^='zoom-']").addClass('zoom-18'); }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-16 13:52:32

removeClass()只使用类名,而不是选择器。

你可以这样做:

代码语言:javascript
运行
复制
var $el = $('.marker');
var classList = $el.attr('class').split(' ');

$.each(classList, function(id, item) {
    if (item.indexOf('zoom-') == 0) $el.removeClass(item);
});

$el.addClass('zoom-' + z); // zoom-16, zoom-17, zoom-18 etc.
票数 4
EN

Stack Overflow用户

发布于 2016-06-16 13:55:48

这将删除所有现有的缩放类。在末尾添加新类。

代码语言:javascript
运行
复制
var z = 18;
var items = [16, 17, 18];

$.each(items, function (ind, val) {
    if (z === val) {
        $(".marker").removeClass(function (index, css) {
            return (css.match(/(^|\s)zoom-\S+/g) || []).join(' ');
        }).addClass('zoom-' + val);
    }
});
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37861057

复制
相关文章

相似问题

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