<span class="here one-two-del-del other1">test</span>
<span class="here one-two-aaa o2ther">test</span>
<span class="here one-two-dsf other3">test</span>
<span class="here one-two-213 o4ther">test</span>
<span class="here one-two-sdf other5">test</span>
<span class="here one-two-sdff o6ther">test</span>
<span class="set one-two-aaaa">set 1</span> <br />
<span class="set one-two-bb-fff">set 2</span> <br />
<span class="set one-two-vcvc">set 3</span> <br />
<span class="set one-two-fgdfg-dfgfd-fgf">set 4</span> <br />
$('.set').click(function(){
$('#here').???
})
我想 - 如果我点击.set然后这应该得到自己的类并替换所有.here。
例如,如果我点击 set 2 ,那么所有跨越类.here应该是:
<span class="here one-two-bb-fff other1">test</span>
<span class="here one-two-bb-fff o2ther">test</span>
<span class="here one-two-bb-fff other3">test</span>
<span class="here one-two-bb-fff o4ther">test</span>
<span class="here one-two-bb-fff other5">test</span>
<span class="here one-two-bb-fff o6ther">test</span>
我不能使用removeClass,因为我不知道当前的类是怎么回事。如果我使用.attr('class','new')然后替换所有类,但我仍然必须有class other,o2ther等
也许我必须使用正则表达式?
答案 0 :(得分:2)
<强> HTML 强>
<span class="here one-two-del-del other1">test</span>
<span class="here one-two-aaa o2ther">test</span>
<span class="here one-two-dsf other3">test</span>
<span class="here one-two-213 o4ther">test</span>
<span class="here one-two-sdf other5">test</span>
<span class="here one-two-sdff o6ther">test</span>
<br />
<span class="set one-two-aaaa">set 1</span> <br />
<span class="set one-two-bb-fff">set 2</span> <br />
<span class="set one-two-vcvc">set 3</span> <br />
<span class="set one-two-fgdfg-dfgfd-fgf">set 4</span>
<强>的JavaScript 强>
$('.set').click(function () {
var replaceWith = $(this).attr('class');
// Remove the "set " from replaceWith
replaceWith = replaceWith.replace(/set ?/g, '');
$('.here').each(function () {
var newClass = $(this).attr('class');
newClass = newClass.replace(/one-two-[^ $]+/, '');
newClass = newClass + ' ' + replaceWith;
// Now set the new class
$(this).attr('class', newClass);
});
})
这是一个小提琴:http://jsfiddle.net/NNhDd/3/