如何使用 node.js 在cheerio 中获取元素名称
Posted
技术标签:
【中文标题】如何使用 node.js 在cheerio 中获取元素名称【英文标题】:How do I get an element name in cheerio with node.js 【发布时间】:2014-05-21 04:04:21 【问题描述】:如何在 Cheerio 中获取元素的名称?
jQuery 等价物是 .attr('name')
,但它在cheerio 中返回 undefined
。
【问题讨论】:
【参考方案1】:我想只有一种情况,当$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
。以上是关于如何使用 node.js 在cheerio 中获取元素名称的主要内容,如果未能解决你的问题,请参考以下文章
如何从Google Cloud Function(Cheerio,Node.js)发出多个http请求
我可以在 node.js 中使用cheerio 包加载本地 html 文件吗?
node.js 使用 superagent 与 cheerio 完成简单爬虫