从Select更改班级

时间:2013-03-15 14:07:27

标签: jquery html

我正在尝试通过下拉列表中的值在d​​iv中附加一个类。我已经设法做到了,但是,之前的课程仍然在div中并且没有被替换

所以没有得到

<div id="layoutblock" class="row one-column">

我正在

<div id="layoutblock" class="row one-column two-columns three-columns">

这些课正在复合

HTML

<select id="layout">
<option value="one-column">one-column</option>
<option value="two-columns">two-column</option>
<option value="three-columns">three-column</option>
</select>

<div id="layoutblock" class="row"></div>

JQuery

<script type="text/javascript">

$("#layout").change(function () {
  var str = "";
$("#layout option:selected").each(function () {
  str += $(this).val();   
  });
$('#layoutblock').removeClass($(this) str);
$('#layoutblock').toggleClass(str);
})
.change();

</script>

任何想法,谢谢

此致 说

5 个答案:

答案 0 :(得分:1)

jsFiddle Demo

$(function () {
    $("#layout").change(function () {
        $('#layoutblock')[0].className = "row " + $(this).val();
    });
});

答案 1 :(得分:1)

试试这段代码,

var oldVal = "";
$(function() {
    $("#layout").change(function () {
        if(oldVal) {
            $('#layoutblock').removeClass(oldVal);
        }
        $('#layoutblock').addClass($(this).val());
        oldVal = $(this).val(); //Update the old value   
    }).change(); 
 })

演示:http://jsfiddle.net/hwznY/

答案 2 :(得分:1)

试试这个:

$("#layout").change(function () {
    $('#layoutblock')
        .removeClass()
        .addClass("row")
        .addClass($(this).val());
})
.change();

答案 3 :(得分:0)

试试这个

$("select option:not(:selected)").each(function () {    
var value  = $(this).val();
$("#layout").removeClass(value);
 $("#layout").addClass($('#layout :selected').val());
});

答案 4 :(得分:0)

想尝试

$("#layout").change(function () {
    $("#layoutblock").removeAttr("class");
    $("#layoutblock").attr("class", $("#layout option:selected").val()); 

    //Optional alert showing the new class of the div
    alert($("#layoutblock").attr("class"));
});

演示:http://jsfiddle.net/MvxLf/