选择器,用于在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>
但它也返回了我添加@@的已分发项目
选择器有什么问题任何帮助将不胜感激
谢谢
您在 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
。