是否有一种简单的方法来检查给定的选择器字符串是否只指向一个元素?

时间:2011-06-01 13:56:31

标签: javascript jquery

例如

$('div.mydiv').checkifonlyone().css('background-color', 'red');

或者

$('div.mydiv').filter(':checkifonlyone').css('background-color', 'red');

我希望文档中只有一个div与该类,否则应该显示错误消息并且脚本应该停止执行?

6 个答案:

答案 0 :(得分:1)

你可以自己做:

if ($(something).length !== 1)
    //Waaaah!

答案 1 :(得分:1)

可能看起来像:

$('div.mydiv:eq(0)').css('background-color', 'red');

如果有多个元素,那么总会选择第一个元素。

var $mydiv = $('div.mydiv');
if($mydiv.length === 1) {
   $mydiv.css('background-color', 'red');
}

如果选择器上只有一个匹配项,那么实际上只会改变背景颜色。

答案 2 :(得分:0)

var myDivs = $('div.mydiv');
if(myDivs.length === 1)
{
 myDivs.css('background-color', 'red');
}

答案 3 :(得分:0)

if ( $('div.mydiv').length == 1 ) ....

寻找那个?请记住,jQuery元素是一个由大多数函数迭代的匹配数组(或者弹出顶部元素)。

答案 4 :(得分:0)

您需要size() function

它将返回选择器中的元素数量,然后您可以相应地对该结果进行操作。

答案 5 :(得分:0)

根据您的标记,您可能可以使用:only-child selector,但您可能需要执行以下操作:

var $myDiv = $('div.mydiv');
if ($myDiv.length == 1) $myDiv.css('background-color', 'red');