我有一个页面,其中包含< select />大小为“4”的元素。其中一些是残疾人。 IE 8的智慧决定不显示这些列表框的选定项目(该页面在其他浏览器中很好)。我尝试使用jQuery为它们着色。它似乎在本地工作。但是当我将它发布到我的开发服务器时,它就会停止工作。这是我使用的jquery:
$(document).ready(function () {
$('select').each(function () {
if ($(this).attr('size') != undefined && $(this).attr('size') > 1 && $(this).attr('disabled') == 'disabled') {
$(this).find('option[selected=selected]').each(function () {
$(this).css('background-color', '#15317E');
});
}
});
});
我也尝试了以下几页中的建议,但这似乎也没有用。
参考文献:
如果你能给我任何建议,那就太好了!
谢谢!
答案 0 :(得分:1)
啊,最后我发现了这个问题。由于某种原因,服务器实例无法识别此jQuery:
$(this).find('option[selected=selected]').each(function () {
...
}
我不知道为什么,因为开发机器和服务器有相同版本的jQuery,所以必须检查出来。
所以,当我将其更改为以下内容时,本地和开发服务器都开始突出显示所选项目的颜色!
$(document).ready(function () {
$('select').each(function () {
if ($(this).attr('size') != undefined && $(this).attr('size') > 1 && $(this).attr('disabled') == 'disabled') {
$(this).find('option').each(function () {
if ($(this).attr('selected') == 'selected') {
$(this).css('background-color', '#15317E');
}
});
}
});
});
谢谢!
答案 1 :(得分:0)
条件的Jquery - $(this).attr('disabled')
将返回布尔值。
因此上述条件语句中的条件实现为:
$(document).ready(function () {
$('select').each(function () {
if ($(this).attr('size') != undefined && $(this).attr('size') > 1 && $(this).attr('disabled') ) {
$(this).css('background-color', '#15317E');
}
});
});
所选项目相同。
如果在UI上看不到所选项目,则选择框的IE 8禁用属性将不显示所选项目。 IE 8也会阻止滚动条。假设所选项目位于大小为4的选择框中的第10个位置。因此,屏幕上将不会显示第10个项目。对于这种情况,建议将禁用的选择框的大小从4更改为0.这将确保在禁用的选择框中仅显示所选项目。以下是代码:
$(document).ready(function() {
$('select').each(function() {
if ($(this).attr('size') != undefined && $(this).attr('size') > 1 && $(this).attr('disabled')) {
$(this).attr('size', 0);
}
});
});