现在,我想为谷歌地图中不同的缩放级别设置不同的类。现在它只添加类,不移除以zoom-
开头的类,我在这里做错了什么?:
// 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'); }
发布于 2016-06-16 13:52:32
removeClass()
只使用类名,而不是选择器。
你可以这样做:
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.
发布于 2016-06-16 13:55:48
这将删除所有现有的缩放类。在末尾添加新类。
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);
}
});
https://stackoverflow.com/questions/37861057
复制相似问题