2

如何在cheerio中获得元素的名称?

jQuery 等价物将是.attr('name'),但会undefined在cheerio 中返回。

4

1 回答 1

10

我想只有一种情况,当$someElement.attr('name')返回时undefined- 如果该元素上没有属性 name。例如...

var cheerio = require('cheerio'),
    $ = cheerio.load(
      '<input id="one" type="input" /><input id="two" name="some_name" />');

console.log( $('#one').attr('name') ); // undefined
console.log( $('#two').attr('name') ); // some_name

请注意,<name>属性仅适用于以下一组元素 (MDN):

<a>, <applet>, <button>, <form>, <frame>, <iframe>, <img>, 
<input>, <map>, <meta>, <object>, <param>, <select>, <textarea>

要获取元素本身的名称(实际上是tagName,但 Cheerio 对其进行了抽象),请使用name包装在 Cheerio 容器中的底层元素的属性,如下所示:

console.log( $('#one')[0].name ); // input 
console.log( $('#two')[0].name ); // input
于 2014-04-08T12:45:13.533 回答