首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >.is()在Cheerio中不存在吗?

.is()在Cheerio中不存在吗?
EN

Stack Overflow用户
提问于 2013-02-28 14:04:16
回答 3查看 2.5K关注 0票数 0

我需要检查一个元素是否是最后一个子元素,如下所示

Determining if the element is the last child of its parent

但是我在node.js上使用cheerio而不是jquery (为了减轻重量)。

https://github.com/MatthewMueller/cheerio

它给了我一个错误:

代码语言:javascript
运行
复制
TypeError: Object XXXXXXX has no method 'is'

有人能确认一下吗?如果是,那么检查节点是否是最后一个子节点的优雅方法是什么?

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-28 14:07:00

下面的示例添加了一个isLastSibling方法,用于检查某个元素是否为最后一个同级元素。

代码语言:javascript
运行
复制
var cheerio = require('cheerio'),
    $ = cheerio.load('<p><a>1</a><b>2</b><i>3</i></p>'),
    $fn = Object.getPrototypeOf($());

$fn.isLastSibling = function() {
    return this.parent().children().last()[0] === this[0];
};

console.log(
    $('a').isLastSibling(),
    $('b').isLastSibling(),
    $('i').isLastSibling()
);

应该得到的输出是false false true,因为<a><b>元素不是最后一个兄弟元素,而<i>元素是最后一个兄弟元素。

票数 1
EN

Stack Overflow用户

发布于 2013-02-28 14:12:42

试一试

代码语言:javascript
运行
复制
<script type="text/javascript">

    $(function()
    {
        $('dom').each(function()
        {
            var $this = $(this);
            if ( $this === $this.parent().last())
            {
                alert('got me!');
            }
        })
    });

</script>
票数 0
EN

Stack Overflow用户

发布于 2013-02-28 14:23:34

检查它正在使用的jquery version吗?

您可以使用last-child-selector来完成此操作

例如:$("div span:last-child").css('background','red');

这是文档的http://api.jquery.com/last-child-selector/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15128582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档