验证jQuery包装集上是否存在文本

时间:2012-08-21 21:46:42

标签: jquery

基本上我有一个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]

如何以正确的方式实现这一目标?

2 个答案:

答案 0 :(得分:1)

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

我认为您要做的是将.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");

答案 1 :(得分:1)

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

var selectedTourDate = $("#tourDate").val();
var isDateBooked = $("#bookedTourDate *:contains("+selectedTourDate+")").length:
if (isDateBooked) alert("Date invalid");