Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用onchange事件添加属性并删除属性?_Javascript_Jquery - Fatal编程技术网

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

Javascript 如何使用onchange事件添加属性并删除属性?,javascript,jquery,Javascript,Jquery,我有多个选择,希望根据在第一个选择中选择的选项添加或删除名称属性 这里有一把小提琴作为例子: 这应该起作用: $("#mySelect").change(function() { var x = $(this).val(); if ($("#" + x).length > 0) { $("#" + x).attr("name", "myName"); } else { $(".selectorClass").removeAttr("

我有多个选择,希望根据在第一个选择中选择的选项添加或删除名称属性

这里有一把小提琴作为例子:

这应该起作用:

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

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

});​

您只是有一些东西倒过来了,但是您忘记了类选择器中的“.”:$“.class”。我把小提琴修好了:


类似于以下内容的内容

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

有问题的时候!!x==false ex:本例中为空字符串。我在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
    }
});

下面是一个

您的意思是隐藏与第一个select元素的值具有相同id的select吗?感谢您的快速响应!在第二次更改mySelect之后,它并没有删除name属性。如果这有关系的话,我正在查firebug。非常感谢!这正是我想要的。我一直在尝试更好地使用javascript,但仍在研究jquery。谢谢你的建议!了解jQuery就是了解CSS。了解CSS就是理解id和类属性之间的区别,并学习如何尽可能少地使用它们。学习如何尽可能少地使用它们是理解级联的概念。学习如何级联需要一些练习。希望这对你有所帮助,祝你旅途好运。顺便说一句,我忘了。一直以来,在类选择器中,@$$非常痛苦:谢谢Ajax。我接受了一个答案,但我没想到会有这么多的快速反应。我是stackoverflow的新手,我正在尝试更好地使用javascript,但当我撞到墙上时,我不知道该怎么办。谢谢你的建议@Mcd我修复了你的代码,尽管我怀疑你是否希望它做它所做的事情。它当前检查元素是否存在,如果存在,则添加名称,即使有其他同名元素。当它找不到元素x时,它会用cals从所有元素中删除名称。我最近接触了.change functon,并一直在尝试如何使用它。我想我可以使用.attr添加一个属性,然后使用.removeAttr删除它。我看到还有一个.prop jquery函数,尽管我不确定何时使用.prop而不是.attr。再次感谢您的快速回复和分享有关如何纠正我的错误的信息:
$("#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
    }
});