如何使用jQuery查找具有特定值的选项标记

时间:2011-02-26 17:29:39

标签: jquery find option selected

我正在尝试使用选定的特定值设置一个选项(使用jQuery)。我有一个字符串:

var data = '<select><option value="1">A</option><option value="2">B</option><option value="3">C</option></select>';

现在我正在尝试找到值为2的选项标签,并将其设置为选中

$(data).find('option[value=2]').attr('selected','selected');

它不起作用:-( ...我也尝试过:

$(data).find('option').each(function(){
if($(this).val()==2){
    $(this).attr('selected','selected');
}
});

哪个也不起作用...... 那里有谁可以提供帮助吗?

2 个答案:

答案 0 :(得分:13)

您的代码运行正常,但当然您需要将其附加到DOM才能看到结果。在这里,我使用了appendTo()[docs]方法。

示例: http://jsfiddle.net/cqhGH/

 // --v---------------make sure the DOM is loaded
$(function() {
    var data = '<select><option value="1">A</option><option value="2">B</option><option value="3">C</option></select>';

    $(data).appendTo('body').find('option[value=2]').attr('selected','selected');
});

虽然更简单的方法是使用val()[docs]方法。

示例: http://jsfiddle.net/cqhGH/1/

$(function() {
    var data = '<select><option value="1">A</option><option value="2">B</option><option value="3">C</option></select>';

    $(data).appendTo('body').val(2);
});

答案 1 :(得分:0)

@patrick dw 我想我必须更具体:-)我正在尝试构建一些新的表行并将它们附加到表中。该表看起来像:

<table id="my_id">
    <tbody>
    </tbody>
</table>

我要追加的表行有一个带有select标签的td。除了取决于值的“selected”属性外,每行中的select标签都是相同的。

var new_tr = new Array();

var some_values = new Array(3,7,15);

var data = '<select><option value="1">A</option>...<option value="26">Z</option></select>';

$.each(some_values, function(i,j){
   $(data).find('option[value='+j+']').attr('selected','selected'); // this is the row wich does not work
   new_tr.push('<tr><td>'+data+'</td></tr>');
});

$('#my_id > tbody').append(new_tr.join(''));

我猜数据需要是一个对象,而不是一个字符串......