我有一个select
menu
与options
不同。我想根据当前时间动态选择option
。
因为我正在使用以下代码
var currentdate = new Date();
var h = currentdate.getHours();
var m = currentdate.getMinutes();
if(m >= 1 && m <= 15)
{
m = '00';
}
else if(m >= 16 && m <=44)
{
m = '30';
}
else if (m >= 45)
{
h++;
m = '00';
}
if(h < 12)
{
var time = h+":"+m+" AM";
$("#kill-time option").each(function() {
if($(this).text() === time) {
$(this).attr('selected', 'selected');
}
});
$('#kill-time').selectmenu('refresh',true);
}
else
{
h = h - 12;
if(h < 10)h="0"+h;
var time = h+":"+m+" PM";
$("#kill-time option").each(function() {
if($(this).text() === time) {
$(this).attr('selected', 'selected');
}
});
$('#kill-time').selectmenu('refresh',true);
}
它会更新值并显示正确的值(在桌面浏览器中),在移动浏览器中它会显示如下
我也创建了JSFiddle并检查了移动浏览器,它有同样的问题
(我想在text
的基础上更改,而不是使用values
)
答案 0 :(得分:1)
认为我把它排序了。我在你的代码上改了两件事。一个大约12的时间的HTML,写作pM而不是PM。
此外,你的JS将时间从24小时12转换为0,实际上我们说中午12点,然后1点1点,所以我只是添加了另一个条件。
if(h!==12){
h = h - 12;
}
我在Google Nexus S,iPhone 5和Windows Phone上使用Google Dev Tools Emulation对此进行了测试,似乎工作正常。
来自docs
selectedIndex,tagName,nodeName,nodeType,ownerDocument, defaultChecked和defaultSelected应该被检索并设置 .prop()方法。在jQuery 1.6之前,这些属性是 可以使用.attr()方法检索,但这不在范围内 attr。这些没有相应的属性,只是 属性。
然后,您必须更改任何上述任何元素的attr()并将其更改为
$(本).prop(&#39;选择&#39;,TRUE);
<强> JSFiddle 强>