选择器,用于在jQuery中仅选择列表中的选中项

本文关键字:列表 选择 用于 jQuery 选择器 | 更新日期: 2023-09-27 18:33:23

我正在使用jquery多选插件

我禁用了一些项目,并在列表中选中了一些项目

我只想提取选中项目的文本

我的代码是

var cval2 = $('#lsltrXYAxis option:checked').not(":disabled").map(function () {
            return this.value.replace('ltrXYAxis', '');
        }).get().join('@@');

禁用项目的 HTML 是

<label class="ui-corner-all ui-state-hover" title="" for="ui-multiselect-lsltrXYAxis-option-0">
<input id="ui-multiselect-lsltrXYAxis-option-0" type="checkbox" aria-disabled="true" disabled="disabled" title="" value="ltrXYAxisApple Identifier" name="multiselect_lsltrXYAxis">
<span>Apple Identifier</span>
</label>

和 已选中项目的 HTML 是

<label class="ui-corner-all" title="" for="ui-multiselect-lsltrXYAxis-option-1">
<input id="ui-multiselect-lsltrXYAxis-option-1" type="checkbox" aria-selected="true" checked="checked" title="" value="ltrXYAxisCustomer Price" name="multiselect_lsltrXYAxis">
<span>Customer Price</span>
</label>

但它也返回了我添加@@的已分发项目

选择器有什么问题任何帮助将不胜感激

谢谢

选择器,用于在jQuery中仅选择列表中的选中项

您在 HTML 中错误地使用了option标签选择器,而您input .

试试这个:

$('#lsltrXYAxis input:checked:not(:disabled)');

此外,如果需要将某些数据与元素相关联,最好使用 data 属性,而不是从 value 属性中提取和替换数据。

而不是:

<input value="ltrXYAxisCustomer Price" ... />

尝试:

<input data-val="Price" ... />

在你的 JavaScript 中:

return $(this).data('val');

尝试以下一些操作

 var cval2 = $(':#lsltrXYAxis option:selected:not(:disabled)').map(function () {
                return this.value.replace('ltrXYAxis', '');
            }).get().join('@@');

您必须使用:checked选择器。

:selected选择器的文档指定,":selected选择器适用于<option>元素。它不适用于复选框或单选inputs;为他们使用:checked