How do I get an element\'s name in cheerio?
The jQuery equivalent would be .attr(\'name\')
but that returns undefined
in cheerio.
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