所以这个问题在网上被问了很多,我看到答案是检查.length是否> 0.
所以在我的情况下,选择框可能存在也可能不存在。如果存在,则可能没有选项。
我必须为以下代码编写代码:
如果存在选择框... 如果没有选择框选项... 禁用文本区域
因此我写了以下内容:
$(document).ready(function () {
"use strict";
alert('running globals');
// Only process this block if the contactEmailAddress select box exists
if ($('contactEmailAddress').length > 0) {
alert('on the comm page');
// If there are no contacts ...
if ($('#contactEmailAddress option').size() === 0) {
alert('disabling the message box');
$('#message').attr("disabled", "disabled");
}
}
});
问题是,因为选择框没有选项,所以决定selectbox.length为0.所以这个块永远不会触发。
我需要另一种方式。
答案 0 :(得分:7)
您错过了第一个$
中的“ID选择器”,而是搜索了名为 contactEmailAddress
的元素,而不是 ID of contactEmailAddress
。
if ($('#contactEmailAddress').length > 0) {
请注意,您可以直接执行$('#contactEmailAddress option').size()
,而无需担心选择是否存在;不会抛出异常或错误。
答案 1 :(得分:0)
您可以使用纯javascript确定存在的元素。
if( document.getElementById("contactEmailAdress") )
或
if( document.getElementsByClassName("option")[0] )