Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 按ID将HTMLCollection转换为数组_Arrays_Xml_Loops_Htmlcollection - Fatal编程技术网

Arrays 按ID将HTMLCollection转换为数组

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"

我在创建要发送的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" 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();
});