2

基本上我有一个 jQuery 包装集和一个日期,我想要验证包装集上是否不存在日期。

我正在尝试的是以下内容:

    var selectedTourDate = $("#tourDate").val();

    var isDateBooked = $("#bookedTourDate *").each(function () {
        if (this.innerHTML == selectedTourDate) return true;
        else return false;
    });

    if (isDateBooked) alert("Date invalid");

但是 isDateBooked 包含某种功能:

jQuery.fn.jQuery.init[1]

实现这一目标的正确方法是什么?

4

2 回答 2

1

在您的代码中,isDateBooked是一个 jQuery 对象,它将始终返回 true。您需要测试.length一个 jQuery 对象,以确定其中是否有任何有趣的东西。

我认为您想要做的是替换.each.filter,然后测试生成的 jQuery 对象的长度:

var selectedTourDate = $("#tourDate").val();

var $isDateBooked = $("#bookedTourDate *").filter(function () {
    if (this.innerHTML == selectedTourDate) return true;
    else return false;
});

if ($isDateBooked.length) alert("Date invalid");
于 2012-08-21T21:49:40.033 回答
1

您可以使用:contains()选择器和length属性:

var selectedTourDate = $("#tourDate").val();
var isDateBooked = $("#bookedTourDate *:contains("+selectedTourDate+")").length:
if (isDateBooked) alert("Date invalid");
于 2012-08-21T21:54:27.800 回答