如何使用jquery键值数组?

how to use jquery key value array?

我需要帮助为我遇到的这个 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,请帮忙。

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/