0

所以这个问题在网上被问了很多,我看到答案是检查 .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。所以这个块永远不会触发。

我需要另一种方式。

4

2 回答 2

7

您缺少第一个中的“ID 选择器” $,而是搜索名为 contactEmailAddress的元素,而不是ID为 的元素contactEmailAddress

if ($('#contactEmailAddress').length > 0) {

请注意,您可以直接执行此操作$('#contactEmailAddress option').size(),而不必担心选择是否存在;不会抛出异常或错误。

于 2013-04-22T16:27:01.653 回答
0

您可以使用纯 JavaScript 确定元素是否存在。

if( document.getElementById("contactEmailAdress") )

或者

if( document.getElementsByClassName("option")[0] )
于 2013-04-22T16:33:34.590 回答