How do I get an element name in cheerio with node.js

后端 未结 1 1727
日久生厌
日久生厌 2021-01-22 02:52

How do I get an element\'s name in cheerio?

The jQuery equivalent would be .attr(\'name\') but that returns undefined in cheerio.

相关标签:
1条回答
  • 2021-01-22 03:46

    There's only one case, I suppose, when $someElement.attr('name') returns undefined - if there's NO attribute name on that element. For example...

    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
    

    Note that <name> attribute is only applicable to the following set of elements (MDN):

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

    To get the name of the element itself (it's tagName actually, but Cheerio abstracts it), use name property of the underlying element wrapped in Cheerio container, like this:

    console.log( $('#one')[0].name ); // input 
    console.log( $('#two')[0].name ); // input
    
    0 讨论(0)
提交回复
热议问题