【问题标题】:Unusual behaviour when select multiple item of select element by jquery通过jquery选择多个选择元素时的异常行为
【发布时间】:2013-03-25 11:40:01
【问题描述】:

我通过以下jquery代码选择了多个选择项。

$.map($("[id*='lstWeekDays'] option"), function(e) {
if (jQuery.inArray($.trim($(e).val()), item1) != -1) {

    if (!$(":selected", e).is(':checked')) {
            $(e).attr("selected", true);
        }
    }
});

由此,在select元素的option标签中添加selected="selected"属性。

<select style="width:188px;" id="lstWeekDays" multiple="multiple"  size="4">
    <option value="Sunday">Sunday</option>
    <option value="Monday" selected="selected">Monday</option>
    <option value="Tuesday" selected="selected">Tuesday</option>
    <option value="Wednesday">Wednesday</option>
    <option value="Thursday">Thursday</option>
    <option value="Friday">Friday</option>
    <option value="Saturday">Saturday</option>

</select>

现在,当我通过 UI 选择其他元素时,此属性不会从 HTML 中删除,但它们会从选择列表中取消选择。当我再次尝试通过 jquery 选择选择列表的项目时,不会选择项目。我知道这个问题有点混乱。所以如果你有任何困惑,请问我

【问题讨论】:

  • $(":selected", e).is(':checked')你确定没有更好的方法吗?
  • 你看起来很奇怪,我肯定会改变这个......

标签: jquery html


【解决方案1】:

尝试使用$(e).prop("selected", true);。

.attr() 设置元素的默认属性,而.prop() 更改“运行”属性。

【讨论】:

    猜你喜欢
    • 2011-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-11
    • 1970-01-01
    • 2015-08-29
    相关资源
    最近更新 更多