Jquery 从for循环创建XML
嗨,我正在尝试从for循环创建一个XML。但是使用下面的代码,我只得到页面上找到的最后一个元素。并不是所有的都像我预料的那样 考虑到页面上有许多id为“textHolder1、textHolder2”的元素,它们的内容都不同 Jquery:Jquery 从for循环创建XML,jquery,for-loop,Jquery,For Loop,嗨,我正在尝试从for循环创建一个XML。但是使用下面的代码,我只得到页面上找到的最后一个元素。并不是所有的都像我预料的那样 考虑到页面上有许多id为“textHolder1、textHolder2”的元素,它们的内容都不同 Jquery: var text = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><canvas>"; text += "<elements>"; text_length = $('[
var text = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><canvas>";
text += "<elements>";
text_length = $('[id^="textHolder"]').length;
for(var n = 0; n < text_length; n++){
TextElementID = $('[id^="textHolder"]').attr('id');
TextElementContent = $('[id^="textHolder"]').text();
text += "<element id='"+TextElementID+"'>";
text += "<content>"+TextElementContent;
text += "</content>";
text += "</element>";
}
text += "</elements>";
text +="</canvas>";
alert(text)
var text=”“;
文本+=”;
文本长度=$('[id^=“textHolder”]')。长度;
对于(变量n=0;n
我做错了什么?试试这个,使用每个循环:
var text = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><canvas>";
text += "<elements>";
$('[id^="textHolder"]').each(function(){
var TextElementID = this.id,
TextElementContent = $(this).text();
text += "<element id='" + TextElementID + "'>";
text += "<content>" + TextElementContent;
text += "</content>";
text += "</element>";
});
text += "</elements>";
text += "</canvas>";
alert(text)
var text=”“;
文本+=”;
$('[id^=“textHolder”]')。每个(函数(){
var TextElementID=this.id,
TextElementContent=$(this.text();
文本+=”;
text+=“”+TextElementContent;
文本+=”;
文本+=”;
});
文本+=”;
文本+=”;
警报(文本)
我看到了一些问题。我看不出您在哪里声明一些变量,而且,您正在选择一组元素并试图获取一个ID。我相信这段代码会清除它(未经测试)
var text=”“;
文本+=”;
var text_length=$('[id^=“textHolder”]')。长度;
对于(变量n=0;n
在您正在执行的for循环中(“[id^=“textHolder”]”)在每次迭代中,它选择与选择器匹配的所有元素。然后获得第一匹配元素的ID和第一匹配元素的内容。显然这不是你想要的。考虑使用。嗯,这就是我所说的完美答案!谢谢!工作就像一个魅力!
var text = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><canvas>";
text += "<elements>";
var text_length = $('[id^="textHolder"]').length;
for(var n = 0; n < text_length; n++){
var TextElementID = $('[id="textHolder' + i + '"]').attr('id');
var TextElementContent = $('[id="textHolder' + i + '"]').text();
text += "<element id='"+TextElementID+"'>";
text += "<content>"+TextElementContent;
text += "</content>";
text += "</element>";
}
text += "</elements>";
text +="</canvas>";
alert(text)