在jQueryMobile框架下的select选择框元素,想要动态变更选中项时发现变更不了,请问有什么好办法解决吗?

发布于 2022-09-03 13:03:51 字数 1043 浏览 18 评论 0

按正常的方法:

select1.selectedIndex = i;

不能奏效。而且现象很奇特:下拉列表中的项是选中了,但选框标题却没变。
经查看浏览器DOM树,发现<select>元素已经被jQueryMobile库改造,添加了一些<div>和<span>,变成了这样:

<div class="ui-select">
    <div id="select1-button" class="ui-btn ui-icon-carat-d ui-btn-icon-right ui-corner-all ui-shadow ui-first-child">
        <span>text2</span>
        <select id="select1">
            <option value="value1">text1</option>
            <option value="value2">text2</option>
            <option value="value3">text3</option>
        </select>
    </div>
</div>

<select>元素前面被添加了一个<span>作为选框标题。原因也正在于此。选中项动态变更了,然而<span>的内容却没有自动随之变更,故造成标题仍然不变的怪象。
实在找不到什么好办法,最后只得加了一行硬改<span>内容的语句:

select1.previousSibling.innerHTML = select1.options[i].text;

经实验,这方法可以解决问题。但总觉得这种硬改的办法不像是好办法(我不熟悉jQuery和jQueryMobile,引入它们的库进来只是纯粹起到套用其外观样式的作用)。故想请问各位大侠,这种情况有没有什么更好的解决办法吗?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

晒暮凉 2022-09-10 13:03:51

一般来说是这样:

$('#selectId').val('select_value');
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文