我正在使用ajax选择框将文件内容加载到最近的div区域 的 Demo 即可。 我使用下面的脚本来更改第一个选项文本"选择"去"隐藏"加载ajax内容时。但是,我无法将"隐藏" 文字更改为"选择" 点击后。
代码:
var area = $(".selectboxarea");
$(".searchselectbox").on('change', function (e) {
area.empty();
var selected = $(this).find('option:selected');
var loadfile = selected.data('file');
if (loadfile) {
$(this).next('.selectboxarea').load(loadfile);
$(this).find('option:contains("Select")').text("Hide");
} else {
window.location.href = $(this).val();
}
});
HTML
<select class="searchselectbox">
<option value="#">Select</option>
<option data-file="fans.php">Fans</option>
<option data-file="stars.php">Stars</option>
</select>
<div class="selectboxarea"></div>
我应该在函数中使用这一行吗?
$(this).find('option:contains("Hide")').text("Select");
答案 0 :(得分:2)
您可以向需要更改其文本的<option>
添加一个类,例如:
<option value="#" class="select">Select</option>
然后Js将是
var $this = $(this);
var selected = $this.find('option:selected');
var loadfile = selected.data('file');
if (loadfile) {
$this.next('.selectboxarea').load(loadfile);
$this.find('.select').text('Hide');
$this.find('.select').toggleClass('hide');
} else if (selected.hasClass('hide')) {
selected.text('Select');
selected.toggleClass('hide');
} else {
window.location.href = $(this).val();
}
当有文件数据属性时,文本会发生变化,而且&#34;隐藏&#34;在第一个option
上添加。之后,如果所选选项具有类&#34;隐藏&#34;,则会更改文本并删除该类。
另外,我使用var $this = $(this);
来缓存jQuery变量,因为每次需要时都不会让脚本查找它们。
答案 1 :(得分:1)
我认为您正在尝试进行多项选择,这会隐藏已选择的数据。好吧,为了给你的用户提供良好的视图体验(你的例子对于多个选择非常沉闷 - 演示),请使用这个jquery库:chosen。无论是否加载ajax(包括示例),我总是使用它进行多项选择。看一看。