如何使用jquery键值数组?

时间:2016-02-15 22:20:58

标签: jquery html arrays key-value

我需要帮助为我遇到的这个jQuery代码添加一个键值数组。代码完全符合我的需要,除了我需要多个输入,不像它提​​供的单个输入。

jQuery("#btn").on('click', function() {
    var caretPos = document.getElementById("txt").selectionStart;
    var textAreaTxt = jQuery("#txt").val();
    var txtToAdd = "stuff";
    jQuery("#txt").val(textAreaTxt.substring(0, caretPos) + txtToAdd + textAreaTxt.substring(caretPos) );
});
<textarea id="txt" rows="15" cols="70">There is some text here.</textarea>
<input type="button" id="btn" value="OK" />

请参阅here

我希望有一个数组,如:

OK => stuff,
YES => more stuff,
NO => no stuff

我对jQuery并不熟悉,请帮助。

1 个答案:

答案 0 :(得分:1)

Javascript没有带字符串键的数组,只有索引数组。但是你可以为此目的使用一个对象。
更改您的代码,如下所示:

<textarea id="txt" rows="15" cols="70">There is some text here.</textarea>
<input type="button" class="btn" value="OK" />
<input type="button" class="btn" value="NO" />
<input type="button" class="btn" value="YES" />
$(".btn").on('click', function() {
    var caretPos = document.getElementById("txt").selectionStart;
    var textAreaTxt = $("#txt").val();
    var txtSet = {'ok' : 'stuff', 'yes' : 'more stuff', 'no' : 'no stuff'};
    var txtToAdd = txtSet[$(this).val().toLowerCase()];
    $("#txt").val(textAreaTxt.substring(0, caretPos) + txtToAdd + textAreaTxt.substring(caretPos) );
});

现在,由于各种可能的按钮,您可以轻松扩展对象txtSet

http://jsfiddle.net/3pg5zmqg/