【问题标题】:How do I get an element name in cheerio with node.js如何使用 node.js 在cheerio 中获取元素名称
【发布时间】:2014-05-21 04:04:21
【问题描述】:

如何在 Cheerio 中获取元素的名称?

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

【问题讨论】:

    标签: html node.js web-scraping cheerio


    【解决方案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
    

    请注意,&lt;name&gt; 属性仅适用于以下元素集 (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
    猜你喜欢
    • 2020-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-11
    • 2020-05-13
    • 1970-01-01
    • 2017-02-19
    • 2011-11-07
    相关资源
    最近更新 更多