Javascript 在包含HTML元素的JS变量中添加HTML代码
我需要添加一个任务列表,然后单击我正在使用knockout js的html表中的一行。问题是,我只是从一行数据中添加de last task,需要在元素“$taskSelected”中为每个任务添加一个新的TR。这是我的密码Javascript 在包含HTML元素的JS变量中添加HTML代码,javascript,jquery,html,innerhtml,Javascript,Jquery,Html,Innerhtml,我需要添加一个任务列表,然后单击我正在使用knockout js的html表中的一行。问题是,我只是从一行数据中添加de last task,需要在元素“$taskSelected”中为每个任务添加一个新的TR。这是我的密码 self.retrieveTask = function(data, event) { if (event.type=="click") { var id = data.Id;
self.retrieveTask = function(data, event) {
if (event.type=="click") {
var id = data.Id;
var $taskSelected = event.currentTarget.parentElement.nextElementSibling;
$.get("@Url.Action("Method", "Controller")", { id: id })
.done(function(data) {
$.each(data, function(key, value) {
var html = "<tr><td>" +
"</td>" +
"<td>" +
" <div >" +
+ value.Type +
"</div> " +
"</td>" +
"<td>" +
" <div >" +
value.Id +
"</div> " +
"</td>" +
"</tr>";
$taskSelected.innerHTML=html;
});
}).fail(function() {
alert("error");
});
};
}
self.retrieveTask=函数(数据、事件){
如果(事件类型==“单击”){
var id=data.id;
var$taskSelected=event.currentTarget.parentElement.nextElementSibling;
$.get(“@Url.Action(“方法”、“控制器”),{id:id})
.完成(功能(数据){
$。每个(数据、函数(键、值){
var html=“”+
"" +
"" +
" " +
+值。类型+
" " +
"" +
"" +
" " +
value.Id+
" " +
"" +
"";
$taskSelected.innerHTML=html;
});
}).fail(函数(){
警报(“错误”);
});
};
}
var$taskSelected包含另一行“
”我希望嵌套行。一些建议请尝试以下方法:
self.retrieveTask = function(data, event) {
if (event.type=="click") {
var id = data.Id;
var $taskSelected = event.currentTarget.parentElement.nextElementSibling;
$.get("@Url.Action("Method", "Controller")", { id: id })
.done(function(data) {
var html = "";
$.each(data, function(key, value) {
html += "<tr><td>" +
"</td>" +
"<td>" +
" <div >" +
+ value.Type +
"</div> " +
"</td>" +
"<td>" +
" <div >" +
value.Id +
"</div> " +
"</td>" +
"</tr>";
});
$taskSelected.innerHTML=html;
}).fail(function() {
alert("error");
});
};
}
self.retrieveTask=函数(数据、事件){
如果(事件类型==“单击”){
var id=data.id;
var$taskSelected=event.currentTarget.parentElement.nextElementSibling;
$.get(“@Url.Action(“方法”、“控制器”),{id:id})
.完成(功能(数据){
var html=“”;
$。每个(数据、函数(键、值){
html+=“”+
"" +
"" +
" " +
+值。类型+
" " +
"" +
"" +
" " +
value.Id+
" " +
"" +
"";
});
$taskSelected.innerHTML=html;
}).fail(函数(){
警报(“错误”);
});
};
}
我所做的就是将
var html
移动到每个循环之外。这确保所有以前的HTML都保留在变量中,否则每次运行循环时都会覆盖HTML
(这就是为什么只输出最后一个;) 您不能嵌套:“允许的内容:零个或多个或多个元素,或它们的混合”。如果您尝试创建嵌套行,“子”行的开始标记将关闭“父”行,并创建新行。感谢您的回答确实范围有误,顺便说一下,我这里最严重的错误是我的表的结构,正如Teemu所说。我修改了表的结构,并在当前行之后添加$(html).insertAfter($taskSelected)。再次感谢。