Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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
Javascript 为什么不';是否使用每个()创建多个标记?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 为什么不';是否使用每个()创建多个标记?

Javascript 为什么不';是否使用每个()创建多个标记?,javascript,jquery,html,Javascript,Jquery,Html,假设我有一些数据看起来像这样 <data> <location> <type>main</type> </location> <location> <type>mailing</type> </location> </data> $('location',data).each(function(){

假设我有一些数据看起来像这样

<data>
    <location>
        <type>main</type>
    </location>
    <location>
        <type>mailing</type>
    </location>
</data>
$('location',data).each(function(){

          var x='<table><tr><td>Type:</td><td>'+$(data).find('type').text()+'</td></tr></table>';
         $('#output').html(x);
});

主要的
邮寄
然后一些代码看起来像这样

<data>
    <location>
        <type>main</type>
    </location>
    <location>
        <type>mailing</type>
    </location>
</data>
$('location',data).each(function(){

          var x='<table><tr><td>Type:</td><td>'+$(data).find('type').text()+'</td></tr></table>';
         $('#output').html(x);
});
$('location',data)。每个(函数(){
var x='Type:'+$(数据).find('Type').text();
$('#output').html(x);
});
我运行这个程序的结果是

类型:mainmailing

我不明白为什么它不执行以下操作,因为对于每个location元素,它应该再次运行代码,对吗

类型:主要


类型:mailing

,因为您一直在覆盖上一个值

.html()
不会附加到其中的内容,而是覆盖它

奇怪的是,你正在创建spearte表,而不仅仅是行,而是基本的想法

var x='<table><tr><td>Type:</td><td>'+$(this).find('type').text()+'</td></tr></table>';
$('#output').append(x);
var x='Type:'+$(this.find('Type').text();
$('#output')。追加(x);
我期待着更像

var table = "<table><tbody>";
$(data).find('location').each(function(){
   table += "<tr><th>Type:</th><td>'+$(this).find('type').text()+'</td></tr>';
});
table += "</tbody></table>";
$('#output').html(table);
var表=”;
$(数据)。查找('location')。每个(函数(){
表+=“类型:'+$(this).find('Type').text()+';
});
表+=”;
$('#output').html(表格);

因为您一直在覆盖上一个值

.html()
不会附加到其中的内容,而是覆盖它

奇怪的是,你正在创建spearte表,而不仅仅是行,而是基本的想法

var x='<table><tr><td>Type:</td><td>'+$(this).find('type').text()+'</td></tr></table>';
$('#output').append(x);
var x='Type:'+$(this.find('Type').text();
$('#output')。追加(x);
我期待着更像

var table = "<table><tbody>";
$(data).find('location').each(function(){
   table += "<tr><th>Type:</th><td>'+$(this).find('type').text()+'</td></tr>';
});
table += "</tbody></table>";
$('#output').html(table);
var表=”;
$(数据)。查找('location')。每个(函数(){
表+=“类型:'+$(this).find('Type').text()+';
});
表+=”;
$('#output').html(表格);

您似乎得到了
类型:mainmailing

因为您似乎在整个数据中找到它,而不是在当前位置标记中

$(data).find('type').text()
应该是

$(this).find('type').text();
此外,您还可以保持覆盖每个循环迭代中的值。 将附加移动到循环的外部

var x = '<table>'
$('location','data').each(function(){
     x +='<tr><td>Type:</td><td>'+$(this).find('type').text()+'</td></tr>';   
});
x += '</table>'
$('#output').html(x);
var x=''
$('location','data')。每个(函数(){
x++='Type:'+$(this.find('Type').text()+'';
});
x+=''
$('#output').html(x);

您似乎收到了
类型:mainmailing

因为您似乎在整个数据中找到它,而不是在当前位置标记中

$(data).find('type').text()
应该是

$(this).find('type').text();
此外,您还可以保持覆盖每个循环迭代中的值。 将附加移动到循环的外部

var x = '<table>'
$('location','data').each(function(){
     x +='<tr><td>Type:</td><td>'+$(this).find('type').text()+'</td></tr>';   
});
x += '</table>'
$('#output').html(x);
var x=''
$('location','data')。每个(函数(){
x++='Type:'+$(this.find('Type').text()+'';
});
x+=''
$('#output').html(x);

您应该使用
append()
而不是
html()
,并且您应该使用当前在
each()中处理的项目

var data=“mainmailing”;
$(“位置”,数据)。每个(功能(索引,项){
var x='Type:'+$(item.find('Type').text()+'';
$('#output')。追加(x);
});​

这是一个有效的方法。

您应该使用
append()
而不是
html()
,并且应该使用当前在
each()中处理的项目。

var data=“mainmailing”;
$(“位置”,数据)。每个(功能(索引,项){
var x='Type:'+$(item.find('Type').text()+'';
$('#output')。追加(x);
});​

这是一个可行的方法。

但它将两个数据值结合起来,而不是替换它们?我有点困惑。另外,您可以使用
.append().html()
使用
.innerHTML
,即使它可以工作,也不应该使用。@barit它将它们组合在一起,因为您在每个循环中没有使用
$(此)
,您使用
$(数据)
引用了所有类型元素,非常感谢您的帮助,多亏了你和@sushanthb,我才能够让它正常工作,但它将两个数据值结合起来,而不是替换它们?我有点困惑。另外,您可以使用
.append().html()
使用
.innerHTML
,即使它可以工作,也不应该使用。@barit它将它们组合在一起,因为您在每个循环中没有使用
$(此)
,您使用
$(数据)
引用了所有类型元素,非常感谢您的帮助,感谢您和@sushanthuse.append()而不是.html()使用.append()而不是.html()非常感谢您的帮助,我能够得到它working@barit.. 很高兴能帮助你:)非常感谢你的帮助,我能得到它working@barit.. 很高兴帮助你:)