Arrays 按ID将HTMLCollection转换为数组
我在创建要发送的XML时遇到了一个大问题。我所拥有的只是HTML节点,这些节点连接着一个特别构建的ID,其模式为:_header_firstLeveL_secondLevel_anotherLevel HTML结构:Arrays 按ID将HTMLCollection转换为数组,arrays,xml,loops,htmlcollection,Arrays,Xml,Loops,Htmlcollection,我在创建要发送的XML时遇到了一个大问题。我所拥有的只是HTML节点,这些节点连接着一个特别构建的ID,其模式为:_header_firstLeveL_secondLevel_anotherLevel HTML结构: <input id="_movies_noGenre_documents_AnInconvenientTruth" type="text" value="A"> <input id="_movies_genre_horror_blackAndWhite_Saw"
<input id="_movies_noGenre_documents_AnInconvenientTruth" type="text" value="A">
<input id="_movies_genre_horror_blackAndWhite_Saw" type="text" value="B">
<input id="_movies_genre_horror_blackAndWhite_Dracula" type="text" value="C">
<input id="_movies_genre_horror_color_It" type="text" value="D">
<input id="_movies_genre_comedy_blackAndWhite_DuckSoap" type="text" value="E">
<input id="_movies_genre_comedy_color_Hangover" type="text" value="F">
<input id="_movies_genre_comedy_color_Superbad" type="text" value="G">
<input id="_movies_genre_comedy_color_Anchorman" type="text" value="H">
所有这些都是因为后来我迭代了这个对象,并准备了字符串来构建要发送的XML
提前感谢您的想法 您可以使用jQuery解析html
var object = {}
$("input").each(function() {
var id = $(this).attr("id");
var id_parts = id.split("_");
var tmp_obj = object;
for (var i=0; i<id_parts.length -1; i++) {
if (!tmp_obj[id_parts[i]])
tmp_obj[id_parts[i]] = {};
tmp_obj = tmp_obj[id_parts[i]];
}
tmp_obj[id_parts[id_parts.length -1]]=$(this).val();
});
var对象={}
$(“输入”)。每个(函数(){
var id=$(this.attr(“id”);
变量id_parts=id.split(“”);
var tmp_obj=对象;
for(var i=0;iso您的xml在哪里?您想创建javascript对象还是xml?Emech您救了我的命!:-)你能给我解释一下它是如何工作的吗?在speciall var tmp_obj=object part中,请。你有一个嵌套的属性,用下划线分隔。你可以使用递归函数或类似于我所做的一些事情。对于每个输入元素,我将分隔键,然后对于每个键,我检查“object”是否有键,所以我将选择下一个嵌套属性。在“var tmp_obj=object”我们的tmp_obj与object相同,而不是它的副本,因此它的每一个更改都将保存到object变量中。在java脚本中,您可以通过“object.key”或object[“key”]使用一个属性,因此我使用第二个属性来表示由“\u”分隔的动态属性。
var object = {}
$("input").each(function() {
var id = $(this).attr("id");
var id_parts = id.split("_");
var tmp_obj = object;
for (var i=0; i<id_parts.length -1; i++) {
if (!tmp_obj[id_parts[i]])
tmp_obj[id_parts[i]] = {};
tmp_obj = tmp_obj[id_parts[i]];
}
tmp_obj[id_parts[id_parts.length -1]]=$(this).val();
});