使用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