javascript - 当下拉列表中的项目发生变化时突出显示标签的简洁方法?

标签 javascript jquery jquery-ui jquery-events

我想在关联的下拉值更改时用颜色突出显示标签。

<tr>
    <td>
        <select id="first_dd" data-bind="value: first">
            <option>cat</option>
            <option>dog</option>
            <option>squirrel</option>
            <option>birds</option>
        </select>
    </td>
    <td>
        <label id="first_lb">
            soft</label>
    </td>
</tr>
<tr>
    <td>
        <select id="second_dd" data-bind="value: second">
            <option>lion</option>
            <option>elephant</option>
            <option>kangaroo</option>
            <option>buffalo</option>
        </select>
    </td>
    <td>
        <label id="second_lb">
            dangerous</label>
    </td>
</tr>

我想在用户更改 first_dd 项时更改 first_lb 的颜色。

我怎样才能用更少的代码在 JavaScript/jQuery 中完成这个任务?

非常感谢任何建议。

最佳答案

所以,这里是“更少的代码”。 将更改事件处理程序添加到select

试试这个:

$("#first_dd").change(function(){
   $("#first_lb").css('color',"yellow");
});

<强> DEMO

编辑:

由于您的问题仅询问 first_ddfirst_lb,因此我仅添加了该部分的代码。要将其应用于所有 select,请使用 jquery .each()

如果您动态添加元素,则必须使用 on 绑定(bind)事件,否则使用 .change() 就足够了。

因此,当您提到您的要求时,请执行以下操作:

$('select').each(function(){         //for each select elements in document
    $(this).on('change',function(){  //bind change event
        var id = $(this).attr('id').replace('dd','lb'); //get id for label
        $("#"+id).css("color","yellow"); //highlight
    })
})

<强> DEMO

关于javascript - 当下拉列表中的项目发生变化时突出显示标签的简洁方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24639952/

相关文章:

javascript - Chain React setState 回调

javascript - 函数和主 dom 中的变量是否重新声明?

javascript - 如何在javascript中获取URL数组参数

jquery - 在最初加载时隐藏 div 的层次结构

javascript - 从 jqueryui 对话框更新数据 - 大小限制问题

javascript - 谷歌地图 (JS-v3) : How do I make my markers "fall from the sky"

javascript - 如果 div 在 ajax 调用中动态加载,如何获取元素选择器

javascript - jQuery.data 的使用

javascript - 使用 jQuery UI selectmenu 在选择中隐藏/显示选项

CSS 缓存问题