jquery 尝试从Selectize输入中移除项时出现语法错误

l5tcr1uw  于 2023-11-17  发布在  jQuery
关注(0)|答案(1)|浏览(90)

每当我试图从Selectize输入中删除一个项目时,我在控制台中得到以下错误:

index.js:12 Uncaught Error: Syntax error, unrecognized expression: option[value="{"id":"allCustomers","type":"keyword"}"]
    at Sizzle.error (index.js:12:1)
    at Sizzle.tokenize (index.js:12:1)
    at Sizzle.select (index.js:12:1)
    at Function.Sizzle [as find] (index.js:12:1)
    at jQuery.fn.init.find (index.js:12:1)
    at Selectize.updateOriginalInput (<anonymous>:31913:16)
    at Selectize.removeItem (<anonymous>:31720:9)
    at HTMLDivElement.<anonymous> (<anonymous>:34943:33)
    at HTMLDocument.dispatch (index.js:12:1)
    at elemData.handle (index.js:12:1)

字符串
我用来删除该项目的代码看起来像这样:

$(document).on('click', 'div.selectize-input div.item', function (e) {
            var select = $('#customerDropdownMailform').selectize();
            var selectedValue = $(this).attr("data-value");
            select[0].selectize.removeItem(selectedValue);
            select[0].selectize.refreshItems();
            select[0].selectize.refreshOptions();
        });


有没有人知道它为什么会坏?我在网上找到的例子建议做上面提到的删除项目的解决方案。
我怀疑data-value可能是罪魁祸首。我试着修改它,使它成为一个int或json字符串化,但我得到了相同的语法错误。

wlwcrazw

wlwcrazw1#

问题是你在[value=...]选择器中使用双引号作为值的分隔符。JSON中的双引号与之匹配,所以它不会将其视为单个值。
在选择器中使用单引号。

<div class="item" data-value='option[value=&apos;{"id":"allCustomers","type":"keyword"}&apos;]'>

字符串
您需要使用&apos;,这样单引号就不会与data-value=周围的引号匹配

相关问题