【发布时间】:2010-02-08 19:30:16
【问题描述】:
我有一个带有值的选择框: 苹果80 苹果100 苹果120 苹果300
我有:<body class="fruit apple-120 otherclass anotherclass">
我想操作 body 类“apple-120”,使其被选择框中的任何选定值替换,同时保持fruit、otherclass、anotherclass、class 不变。
到目前为止,我创建了这个:
$.fn.classSwitcher = function(options) {
var baseOptions = {
classTarget: 'body',
oldClass: 'apple-120'
};
var options = $.extend(baseOptions, options);
return this.each(function() {
$(this).click(function() {
var t = $(this);
var optionVal = t.val();
$(options.classTarget).removeClass(options.oldClass).addClass(optionVal);
});
});
};
那么我有:
$('#sel option').classSwitcher();
这替换了类,但在下一次单击选择框时,更多选择选项值被添加为新类,这不是我想要的。
我只想用新值替换“apple-120”,而不是添加更多。任何其他点击只会替换相同的目标类。
另外,我还想获取所有选择框值,以将它们作为缩小这些类的选择范围的条件。说,如果一个类与选择框中的任何值匹配,就做点什么。
任何提示将不胜感激。谢谢。
【问题讨论】:
-
您是否以任何方式更新
options.oldClass中的值? -
options.oldClass 应替换为选择框中的任何值。最大答案做到了。只等待抓取选择值部分。谢谢