Javascript 使用ChereIO查找并替换某些属性

Javascript 使用ChereIO查找并替换某些属性,javascript,html-parsing,cheerio,Javascript,Html Parsing,Cheerio,我有一个与此类似的html片段 <div class="form-row"> <input type="text" id="foo1"> </div> <div class="form-row"> <input type="text" id="foo2"> </div> <div class="form-row"> <input type="text" id="foo3"> </div

我有一个与此类似的html片段

<div class="form-row">
  <input type="text" id="foo1">
</div>
<div class="form-row">
 <input type="text" id="foo2">
</div>
<div class="form-row">
  <input type="text" id="foo3">
</div>
此时(//#1),我想获取id属性的值,根据上的文档,我可以使用.data方法获取并更改元素中的属性,但是

inputs[key].data("id")
给我一个“TypeError:undefined不是函数”错误

我知道我错过了一些简单的东西,但我看不见树木,如果能给我一些指点,我会很感激的

谢谢

更新#1

就在我认为我已经掌握了这一点的时候,它从我的手指上滑落了

现在,我想移动一个元素:

我有

<label>xyz<i class="fa fa-list"></i></label>

我知道icons.remove()会删除元素,但很难将它们添加到正确的位置。

问题是
输入[key])
将是dom元素引用,它不会有
数据()之类的方法。

尝试将属性值设置为

var cheerio = require("cheerio");
var $ = cheerio.load('<div class="form-row">\
  <input type="text" id="foo1">\
</div>\
<div class="form-row">\
 <input type="text" id="foo2">\
</div>\
<div class="form-row">\
  <input type="text" id="foo3">\
</div>');

var inputs = $('input[id]');

inputs.attr('id', function(i, id){
    return id.replace('foo', 'foobar')
});

console.log($.html())
var cheerio=require(“cheerio”);
var$=cheerio.load('\
\
\
\
\
\
\
\
');
变量输入=$(“输入[id]”);
inputs.attr('id',函数(i,id){
返回id.replace('foo','foobar')
});
console.log($.html())

嗯,哇,这很有效-不完全确定或者为什么,但至少我有一些东西要看和理解;)谢谢。我可以再问一个问题吗:我会使用类似的技术来重命名属性,还是添加和删除属性更好?不管怎样,这项技术是如何实现的?@jmls您不能重命名属性。。。您可以删除并添加另一个
<label>xyz</label><i class="fa fa-list"></i>
var icons = $('label i');

icons.each(function(index,icon) {
  // #2 now that I've got an element what now ?
}
var cheerio = require("cheerio");
var $ = cheerio.load('<div class="form-row">\
  <input type="text" id="foo1">\
</div>\
<div class="form-row">\
 <input type="text" id="foo2">\
</div>\
<div class="form-row">\
  <input type="text" id="foo3">\
</div>');

var inputs = $('input[id]');

inputs.attr('id', function(i, id){
    return id.replace('foo', 'foobar')
});

console.log($.html())