代码之家  ›  专栏  ›  技术社区  ›  ToniWidmo

在jquery中转义select选项值

  •  1
  • ToniWidmo  · 技术社区  · 7 年前

    我有一堆选择框,用于过滤一个大型复杂表,其内容通过一系列ajax查询加载。加载表格时,不仅表格,选择框过滤器也会更新,以反映当前可用的选项。由于此时用户可能已经选择了过滤表的选项,因此我有一些代码来保留当前选择的值:

        if($('#CourseFilter').length) {
            selected = $('#CourseFilter').val();
            $('#CourseFilter').replaceWith(sel);
            if(selected != '') $('#CourseFilter option[value="'+escape(selected)+'"]').prop('selected', true);
        } else {
            sel.appendTo('#filters'); // Adding fitler for first time.
        }
    

    #CourseFilter ,重置回默认值,而不是记住当前选择。它认为这是因为这些列表中的值包含特殊字符,例如 - , / \ .我试过使用 escape

    2 回复  |  直到 7 年前
        1
  •  1
  •   Mate Solymosi    7 年前

    您可能正在寻找:

    sel <option> 并手动选择:

    sel.val(selected);
    

    如果你想找到合适的 <选项>

    <选项> 使用 jQuery.filter

    $('#CourseFilter option').filter(function() {
      return $(this).val() === selected;
    }).prop('selected', true);
    
        2
  •  1
  •   charlietfl    7 年前

    无需逐一查找 <option> val() 他既是一个获得者又是一个二传者。

    val() 设置新值的步骤 <select>

    if($('#CourseFilter').length) {
        selected = $('#CourseFilter').val();
        $('#CourseFilter').replaceWith(sel);
        sel.val(selected);
    } else {
        sel.appendTo('#filters'); // Adding fitler for first time.
    }