Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在select2中选择使用选项组或按索引的选项_Javascript_Jquery_Jquery Select2 - Fatal编程技术网

Javascript 如何在select2中选择使用选项组或按索引的选项

Javascript 如何在select2中选择使用选项组或按索引的选项,javascript,jquery,jquery-select2,Javascript,Jquery,Jquery Select2,我有一个select2,使用如下选项组: <optgroup label="Line Number"> <option data-order="asc">Orderline</option> <option data-order="desc">Orderline</option> </optgroup> <optgroup label="Order Date"> <option da

我有一个select2,使用如下选项组:

<optgroup label="Line Number">
    <option data-order="asc">Orderline</option>
    <option data-order="desc">Orderline</option>
</optgroup>
<optgroup label="Order Date">
    <option data-order="asc">Order Date</option>
    <option data-order="desc">Order Date</option>
</optgroup>
<optgroup label="Ship Date">
    <option data-order="asc">Ship Date</option>
    <option data-order="desc">Ship Date</option>
</optgroup>
我不能真正改变select2的结构,因为它在其他项目中使用

我想触发更改事件,因为在处理程序中会发生大量处理

如果我可以选择基于索引,那也可以


thx

是否仅根据数据顺序选择=“desc”或者你是在试图找到该选项的值,然后如果它等于某个值,那么触发某个值。我试图模拟用户选择Ordlerline desc。通常我会使用问题中显示的“触发器”方法,但在这种情况下似乎不适用。最终结果-select2将更改为所需的选择,而更改事件处理程序将触发并处理该选择。是否仅根据数据顺序进行选择=“desc”或者你是在试图找到该选项的值,然后如果它等于某个值,那么触发某个值。我试图模拟用户选择Ordlerline desc。通常我会使用问题中显示的“触发器”方法,但在这种情况下似乎不适用。最终结果-select2将更改为所需的选择,而更改事件处理程序将触发并处理该选择。好的,我知道您要做什么了。看起来很有希望。好吧,我知道你要做什么了。看起来很有希望。
$('#sortby').val('???').trigger('change.select2');
<select id="sortby">
   <optgroup label="Line Number">
       <option data-order="asc">Orderline</option>
       <option data-order="desc">Orderline</option>
   </optgroup>
   <optgroup label="Order Date">
       <option data-order="asc">Order Date</option>
       <option data-order="desc">Order Date</option>
   </optgroup>
   <optgroup label="Ship Date">
       <option data-order="asc">Ship Date</option>
       <option data-order="desc">Ship Date</option>
   </optgroup>
</select>
//////////////Select ntn option of select element///////////////

var selectElement=$("#sortby");
function select_ntn_Option(index) {
   $('#sortby option[selected="selected"]').removeAttr('selected');
   selectElement.val(null);
   $('#sortby option:eq('+index+')').attr('selected','selected');
   selectElement.trigger('change');
}
select_ntn_Option(5);

//////////////Select ntn option by group title///////////////

var selectElement=$("#sortby");
function select_ntn_Option_ByGroupTitle(groupTitle,index) {
    $('#sortby option[selected="selected"]').removeAttr('selected');
    selectElement.val(null);
    $('#sortby>optgroup[label="'+groupTitle+'"]>option:nth-child('+index+')').attr('selected','selected');
    selectElement.trigger('change');
}
select_ntn_Option_ByGroupTitle('Ship Date',2);

//////////////Select last option by text value/////////////////

var selectElement=$("#sortby");
function selectLastOptionByTextValue(value) {
    $('#sortby option[selected="selected"]').removeAttr('selected');
    selectElement.val(null);
    $('#sortby option').filter(function () { return $(this).html() == value; }).last().attr('selected','selected');
    selectElement.trigger('change');
 }
selectLastOptionByTextValue('Order Date');

//////////////Select last option by group title/////////////////

var selectElement=$("#sortby");
function selectLastOptionByGroupTitle(value) {
    $('#sortby option[selected="selected"]').removeAttr('selected');
    selectElement.val(null);
    $('#sortby>optgroup[label="'+value+'"] option').last().attr('selected','selected');
    selectElement.trigger('change');
}
selectLastOptionByGroupTitle('Ship Date');