javascript - jQuery 每个循环总是返回最后一个值

标签 javascript jquery html

我有 3 个单选按钮和一个段落。我要做的就是检查一个按钮,然后更改段落的颜色。

<p id="pColor">Este párrafo cambiará de color según el valor del radio seleccionado.</p>

<form name="formColor">
    <input type="radio" name="color" value="red" id="red"/>Rojo
    <input type="radio" name="color" value="green" id="green"/>Verde
    <input type="radio" name="color" value="blue" id="blue"/>Azul
</form>

这是我的 jQuery 代码:

$(document).ready(function(){
    $("input[name='color']").change(function(){
        cambiaColor()
    });
});

    var cambiaColor=function(){
        $("input").each(function(){
            $("#pColor").css("color",$(this).val());
        });

    }

无论我选中哪个按钮,文本总是变成蓝色

最佳答案

为什么要使用 .each 呢?使用 onClick 代替

$("input").on('click', function(){
    $("#pColor").css("color",$(this).val());
});

Demo


您只需要上面的代码,不需要其他... Demo ,也可以将 $(this).val() 替换为 this.value,如 @Cerbrus 所指出的


Note: I've just used input as a selector there which is too general, so make sure you make it specific by using $('input[name="color"][type="radio"]')


另外,利用标签,会增强用户体验,老按 radio 不太舒服……

Demo (单击文本,将选择单选按钮)

关于javascript - jQuery 每个循环总是返回最后一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21475021/

相关文章:

javascript - Chrome扩展程序如何检测特定选项卡中的域已更改

javascript - 在不同的 html 页面上显示/隐藏一个 div

javascript - insideHTML 和一个变量

html - 使用最小宽度 :400px In The Body? 时如何删除导航栏中不需要的空间

javascript - TWeb浏览器 : Set referer header when HTML loaded from stream

JavaScript 选中所有复选框并取消选中所有复选框

asp.net - JQuery BlockUI - 如何在文件下载后解锁 UI?

jquery - will_paginate + 无限滚动插件 - 不显示 "Loading"消息

html - 输入类型=图像宽度被忽略

php - 如何在提交后重新填充动态生成的表单选择字段?