使用jquery在JS var上添加更改事件的文本

时间:2009-03-10 02:06:47

标签: jquery

我试图完成“喜欢”的事情。我想基于组合中选择的值将存储在一些JS变量中的文本添加到doc中。即如何根据所选的组合值来引用JS变量?

<select id="clickMe">
    <option value="a">a</a>
    <option value="b">b</a>
    <option value="c">c</a>
</select>

<span id="attachHere"></span>   

<script>

var a = "something about a";
var b = "something about b";
var c = "something about c";

$(document).ready(function() {
    $("#clickMe").change(function() {
        $("#attachHere").text($("#clickMe").val());
    });
});


</script>

3 个答案:

答案 0 :(得分:4)

为什么不选择类似的东西?

<script>
<!--

var values = {
    'a' : "something about a",
    'b' : "something about b",
    'c' : "something about c",
};

$(document).ready(function() {
    $("#clickMe").change(function() {
        $("#attachHere").text(values[$("#clickMe").val()]);
    });
});

//-->
</script>

您将控制您的值列表,并且可以轻松添加和删除值。

答案 1 :(得分:3)

如果你使用 arrays 对象会更好。

假设您不想使用数组,我认为您可以使用eval:

$(document).ready(function() {
    $("#clickMe").change(function() {
        var tmp;
        eval('tmp = ' + $("#clickMe").val());
        $("#attachHere").text(tmp);
    });
});

答案 2 :(得分:2)

尝试将值放在由选项键入的哈希值中,然后根据所选值提取它。

var choices = {};
choices['a'] = 'something about a';
choices['b'] = 'something about b';
choices['c'] = 'something about c';

$(document).ready(function() {
    $("#clickMe").change(function() {
        $("#attachHere").text(choices[$(this).val()]);
    });
});