使用jQuery确定是否存在不包含选项的SelectBox

时间:2013-04-22 16:24:49

标签: javascript jquery

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

我需要另一种方式。

2 个答案:

答案 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] )