2013-02-28 3 views
0

мне нужно проверить, если элемент является последним ребенком, как этот.is() не существует в Cheerio?

Determining if the element is the last child of its parent

Но я использую здор`ово вместо JQuery (для более легкого веса) на Node.js

https://github.com/MatthewMueller/cheerio

Он дал me error:

TypeError: Object XXXXXXX has no method 'is' 

Может кто-нибудь подтвердить? Если да, то какой изящный способ проверить, является ли узел последним ребенком?

Спасибо.

ответ

1

Вот пример, который добавляет метод isLastSibling для проверки того, является ли элемент последним родным братом.

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> элемент.

+0

На самом деле, 'length' 0, когда есть рядом() и' 'length', когда это последний ребенок. Я просто испытал. Странный. Можешь подтвердить? –

+0

Вы правы, это не сработало. Я изменил свой ответ с полным, проверенным примером. –

+0

Спасибо. Это работает. –

0

Попробуйте

<script type="text/javascript"> 

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

</script> 
+0

last() по какой-то причине не работает в cheerio. Он дал мне весь узел parent() вместо последнего :( –

+0

.last() Выберет последний элемент объекта cheerio –

0

Проверить jquery version он использует?

Вы можете использовать last-child-selector для этого

Например: $("div span:last-child").css('background','red');

Вот Документы http://api.jquery.com/last-child-selector/

+0

Я получил последнее здесь и не использует jQuery (я считаю): https : //github.com/MatthewMueller/cheerio. 'div span: last-child' не работает, потому что в' parent' есть много других элементов 'non-span', которые могут быть последним. –

Смежные вопросы