使用jQuery,我想做到这一点:删除某些字开头类,并把它添加到其父
- 看目标元素
- 如果它有一个类名开始与
custom_
- 然后删除类的名称,并将其添加到目标元素
我想我可以使用的父0函数来查找元素是否具有该类,我只是不知道如何移除该类并将其移动一个元素。
if (target.is("[class^='custom_'],[class*=' custom_']"))
使用jQuery,我想做到这一点:删除某些字开头类,并把它添加到其父
custom_
我想我可以使用的父0函数来查找元素是否具有该类,我只是不知道如何移除该类并将其移动一个元素。
if (target.is("[class^='custom_'],[class*=' custom_']"))
斯普利特类上的空间,使用正则表达式来检查,如果每个人的条件相匹配,删除那些匹配,将它们添加到父:
var target = e.target;
var matched_classes = $(target).attr('class').split(' ').filter(
function(c) {
return /^custom_/.test(c)
}
).join(' ');
$(target).removeClass(matched_classes).parent().addClass(matched_classes);
非常好的解决方案! – 2014-10-21 21:53:45
完美地工作,谢谢。 – farjam 2014-10-21 21:53:48
你可以使用正则表达式来获得课程名称,然后采取相应措施。
var target = $('#target'),
className = target.attr('class').match(/custom_*\w/)[0];
target.removeClass(className).parent().addClass(className);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="parent">
<div id="target" class="class1 class2 custom_3 class3"></div>
</div>
不够好?
var $target = $('div.foo'),
classPrefix = 'custom_';
if($target.is('[class^="'+ classPrefix +'"]')){
var matchingClass = $target[0].className.split(' ').filter(function(className){
return ~className.indexOf(classPrefix);
})[0];
if(matchingClass)
$target.removeClass(matchingClass).parent().addClass(matchingClass);
console.log($target.parent(), $target);
}
编辑:看来我是迟到了
'removeClass()'和'$(目标).parent()addClass()'? – Johan 2014-10-21 21:35:20