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

is there a simple way to check if given selector string point to only one element?

本文关键字:字符串 是否 元素 一个 选择器 检查 简单 一种 方法 有没有      更新时间:2023-09-26

示例

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

或者

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

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

可能看起来像:

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

如果存在多个元素,则该元素将始终选择第一个元素。

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

只有当选择器上只有一个匹配项时,才会改变背景颜色。

你可以自己做:

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

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

您需要size()函数。

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

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

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