如何使用javascript将值插入到与另一个字符串匹配的位置的字符串中?

时间:2012-08-12 10:07:25

标签: javascript jquery

我有一个名为selectText的字符串变量,它包含以下文本:

<option value="0101" title="xxxx">A</option><option value="0102" title="xxx">B</option> .....

我有一个名为selectedVal的字符串变量,它包含一个可能是“0101”或“0102”等的值

有没有办法使用javascript我可以修改selectText,如果我提供了selectedVal,则会添加selected =“selected”字样。因此,例如,如果selectedVal的值为“0102”,那么我将返回selectText,其中添加了selected =“selected”。

<option value="0101" title="xxxx">A</option><option value="0102" selected="selected" title="xxx">B</option>

3 个答案:

答案 0 :(得分:2)

试试这个:

$('select').val(selectedVal)

或:

$('select option[value='+selectedVal+']').prop('selected', true)

或者,您可以在附加选项后使用select方法设置val()元素的值:

var selectText = '<option value="0101" title="xxxx">A</option><option value="0102" title="xxx">B</option';
var selectVal ='0102';

$('select').append(selectText).val(selectVal)

DEMO

答案 1 :(得分:1)

如果我们按字面意思理解你有2个字符串变量 selectText selectVal 那么你只需要使用字符串replace你的 selectText 变量。像这样:

var selectText = '<option value="0101" title="xxxx">A</option><option value="0102" title="xxx">B</option>';
var selectedVal = '0102';

var pattern = 'value="' + selectedVal + '"';
selectText = selectText.replace(pattern, pattern + ' selected="selected"');

这导致字符串变量 selectText 具有以下值:

<option value="0101" title="xxxx">A</option><option value="0102" selected="selected" title="xxx">B</option>

答案 2 :(得分:0)

selectText = selectText.replace ('"' + selectedValue + '"', 
    '"' + selectedValue + '" selected="selected"');

selectedText搜索用双引号括起来的selectedValue,并将其替换为自身加上字符串'selected="selected"'。我想这就是你要求的。

预测您的下一个问题,请使用以下内容恢复原始内容:

selectText = selectText.replace (' selected="selected"', '');