【发布时间】:2014-04-18 12:26:42
【问题描述】:
如何在 jQuery 中创建一个选择器以与 .is() 函数一起使用,它表示以下表达式:
$('[name="Person[firstName]"]').val() === ''; // true
$('[name="Person[lastName]"]').val() === ''; // false
有了这个 HTML 上下文
<input name="Person[firstName]" value="" >
<foo bar="true" />
</input>
<input name="Person[lastName]" value="ABCDEFGH" />
:empty Selector 选择所有没有子元素的元素(包括文本节点)。
$('[name="Person[firstName]"]').is(':empty'); // false
$('[name="Person[lastName]"]').is(':empty'); // true
再试一次
$('[name="Person[firstName]"]').is('[value=""]'); // true
$('[name="Person[lastName]"]').is('[value=""]'); // true
注意:这是一个用于知识目的的问题 - 在此解决方案中必须使用 .is()。
@edit http://jsfiddle.net/2CzWu/2/
这两个表达式都必须返回 false
【问题讨论】:
-
这不是重点。这只是一个例子,以避免像这样api.jquery.com/empty-selector
-
@Allyson, 和
.is()必须在此解决方案中使用。 为什么?使用is()似乎与您想要达到的结果适得其反。 -
您关于
$('[name="Person[lastName]"]').is('[value=""]')返回true的声明似乎并非如此。该块中的代码似乎按预期工作。 jsfiddle.net/2CzWu/1 -
@FrédéricHamidi 我相信 OP 想要创建一个布尔表达式来模拟使用
.is()方法的第一个代码块。 -
@RubenInfante 你是对的!声明有效,谢谢!我会关闭这个问题