所以我正在寻找一种简洁的方法来确定从选择器返回的对象数组是否有文本。
我的设置非常基本,我有一个表,我想确定在指定的列中我是否确实有数据。我最初认为.is()方法将是我的答案,但我无法让它返回任何错误:
$('.draft-date').is(function() { return ($(this).text() === ""); }); // <-- return false
$('.draft-date').is(function() { return ($(this).text() != ""); }); // <-- return false, but based on test data should return true
现在,我误解了.is()方法吗?我的代码坏了吗?
我有一个使用.map和.inArray()的工作:
$.inArray(true, $.map($('.draft-date'), function(n, i) { return ($(n).text() != "");} ))
但老实说,我不喜欢它。这很难看。
帮我美化我的花园StackOverflow。
答案 0 :(得分:2)
嗯,最简单的解决方案是在整个选择中使用text
方法,因为它返回所有元素的文本数据。
if ($('.draft-date').text() === '') {
// all elements have no text
}
如果任何元素有文本,则会返回该文本。
这是因为 is
只能处理一组元素中的第一个元素。否则,它将如何知道您想要的结果?