我知道如果我有一个select2并且我想设置其中一个选项,我可以运行此代码。


 $(document)。 ready(function(){
 $('#btn')。change(function(){
 $('#select')。val(4).trigger(“change”)&#xA ;});
});



 让我们说我想得到选项的文字
& #xA;
 < option value = 4> California< / option>



 但是如果我想根据文本设置它而不是值,我该怎么做?


我尝试了


 $(“#select”)。select2(data.text( ),“加利福尼亚”);



 但它没有用。


如何在jquery或javascript中以编程方式执行此操作。


感谢任何帮助

答案 0 :(得分:1)
除了Shakeel Ahmed的答案之外,你应该致电.trigger('change')
,所以完全是这样的:
$("#select").select2("val", $("#select option:contains('Text')").val()).trigger('change');
答案 1 :(得分:1)
此外,对于多选,请使用此选项,以便不丢失已选择的值
var selected=$("#foo option:selected").map(function(){ return this.value }).get();
selected.push( $("#foo option:contains('text')").val() );
$("#foo").val(selected).trigger('change');
答案 2 :(得分:1)
例如:如果您需要在其他国家中查找澳大利亚
let long_name = 'Australia';
let $element = $('.country-js')
let val = $element.find("option:contains('"+long_name+"')").val()
$element.val(val).trigger('change.select2');
其他答案对我不起作用,可能是因为我使用了较新版本的select2
答案 3 :(得分:0)
您可以使用以下代码
$("#select").select2("val", $("#select option:contains('Text')").val() );
如果将使用 文字
选择选项