我对这段代码有一个问题:
$('#activity_filter_type_activity option').eq(1).prop("selected", true);
它适用于经典桌面,但不适用于ipad上的safari/chrome。你能帮我吗?
尝试使用"。
$('#activity_filter_type_activity option').eq(1).attr('checked',true);
我发现这个解决方案在其他线程,是相同的问题.prop() vs .attr()
我认为你需要使用:
$('#activity_filter_type_activity option').attr("selected", "selected");
这与其他答案略有不同。
$(element).attr("checked")用于复选框,并且您正在尝试选择一个"option"输入。
如果你还在寻找解决方案…最好的方法是使用js而不是jquery。在我的项目中,我有这样的东西,它工作得很好
checkboxTmp = document.getElementById($(this).data('check'));
if (checkboxTmp.checked) {
$(this).children('span').css('background-position', '0px 2px');
checkboxTmp.checked = false;
} else {
$(this).children('span').css('background-position', '0px -22px');
checkboxTmp.checked = true;
}
这就是我如何绕过attr()
或prop()
在Safari和/或Chrome失败。检查jQuery对象和选择器的length
,如果:selected
if($('#activity_filter_type_activity option:selected').eq(1).length > 0){
// is selected
} else {
// not selected
}