【发布时间】:2014-05-21 04:04:21
【问题描述】:
如何在 Cheerio 中获取元素的名称?
jQuery 等价物是 .attr('name'),但它在cheerio 中返回 undefined。
【问题讨论】:
标签: html node.js web-scraping cheerio
如何在 Cheerio 中获取元素的名称?
jQuery 等价物是 .attr('name'),但它在cheerio 中返回 undefined。
【问题讨论】:
标签: html node.js web-scraping cheerio
我想只有一种情况,当$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 对其进行了抽象),请使用包裹在 Cheerio 容器中的底层元素的 name 属性,如下所示:
console.log( $('#one')[0].name ); // input
console.log( $('#two')[0].name ); // input
【讨论】:
$('someSelector')[0].name。