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

在多选择器中使用变量

  •  0
  • jayjaypg22  · 技术社区  · 7 年前

    partitions0.instances0.natures typeCle 例如: id="partitions0.instances0.natures0.typeCle" . 然后我会影响到那些,与我选择的元素相同的值。但我的问题是选择器。

    ​$('[id^='+instanceId'][id$=typesCle]') 有或没有双引号,但目前无法找到正确答案。错误是 Uncaught SyntaxError: Invalid or unexpected token

    var instanceId = $(this).attr("id");
    var natureId = $(this).attr("id");
    var valeur = $(this).prop('value');
    natureId = natureId.replace("typesCle", "nature").replace(/\./g, '\\\\.');
    ​​$('[id^='+ natureId +'][id$=typesCle]').each(){
        this.val(valeur);
    }
    

    ​$('[id^=partitions0\\.instances0\\.nature][id$=typesCle]').each(){
        console.log(valeur);
        this.val(valeur);
    }
    

    html代码:

    <div class="col-sm-6">
           <select th:field="*{partitions[__${rowPartitionStat.index}__].instances[__${rowInstanceStat.index}__].typesCle}" class="form-control modRepInstance">
             <option th:each="typeCle : ${allTypesCle}"
               th:value="${typeCle}" th:text="${typeCle}">...</option>
           </select>
    </div>
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Nope landerton    7 年前

    在来回一点之后,似乎不需要逃离点,只需要用一对额外的双引号将选择器包围起来 "

    您的原始代码中实际上有第一个双引号,但在错误的位置,并且缺少右引号和一个 + ,因此出现语法错误。

    总的来说,与原始代码的不同之处在于重新定位了开始引号、添加了结束引号和添加了第二个引号 +

    ​'"[id^='+instanceId'][id$=typesCle]'
    新增: '[id^="'+ instanceId + '"][id$=typesCle]'

    .each() 迭代所有匹配项。

    var outerId = 'partitions0.instances0.nature';
    
    $(document).ready(function() {
     var selector = '[id^="' + outerId + '"][id$=typesCle]';
     console.log(selector);
     
     var x = $(selector);
     console.log(x);
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div class="col-sm-6">
      <select id="partitions0.instances0.nature.SomeUniqueValue.typesCle">
             <option value="Option1Value1" text="Option1Value1">Select1Option1Value1</option>
           </select>
      <select id="partitions0.instances0.nature.SomeOtherValue.typesCle">
             <option value="Option1Value1" text="Option1Value1">Select2Option1Value1</option>
           </select>
    </div>