如何添加属性并使用onchange事件删除属性?

时间:2012-03-21 01:56:56

标签: javascript jquery

我有多个选择,并且想要根据第一个选择中选择的选项添加或删除名称属性。

这是一个例子的小提琴:

http://jsfiddle.net/Nirvanachain/DZFFe/

4 个答案:

答案 0 :(得分:1)

这应该有效:

$("#mySelect").change(function() {
    var x = $(this).val();

    if ($("#" + x).length > 0) {
        $("#" + x).attr("name", "myName");
    } else {
        $(".selectorClass").removeAttr("name");
    }

});​

答案 1 :(得分:1)

你只是向后退了一些东西而忘记了'。'在类选择器中:$('.class')。我修复了小提琴:http://jsfiddle.net/DZFFe/7/

$("#mySelect").change(function() {
    $(".selectorClass").removeAttr("name");
    var x = document.getElementById("mySelect").value;
    if($("#" + x)) {
        $("#" + x).attr("name", "myName");
    }
});

答案 2 :(得分:0)

如下所示?

$("#mySelect").change(function() {
    $('.selectorClass').removeAttr('name');
    $('#' + $(this).val()).attr('name', 'myName');                      
});

http://jsfiddle.net/DZFFe/8/

答案 3 :(得分:0)

!!x === false时出现问题(例如:在这种情况下为空字符串)。我在if

上添加了一个简单的检查

我还添加了一个缺少的.来按类选择

$("#mySelect").change(function() {
    var x = document.getElementById("mySelect").value;
    if(x && $("#" + x)) { //added to check if x != ""
        $("#" + x).attr("name", "myName");
    } else {
        $(".selectorClass").removeAttr("name"); //added missing "." to actually select classes
    }
});

这是jsFiddle