我知道这可以使用jQuery轻松完成,但无法找到如何使用YUI 2完成它。
我通过AJAX提交表单,在回调中,成功之后,我想添加插入到DOM中现有表中的信息。
这是我正在尝试但没有成功:
var callback = {
success: function(o) {
var result = YAHOO.lang.JSON.parse(o.responseText);
if (result.success == true) {
var last_row = YAHOO.util.Dom.getLastChild('tbody_urls');
var html = '<tr><th>' + result.name
+ '</th><td><a href="' + result.url + '" title="' + result.url + '">' + result.url.substr(0, 80) + '</a></td><td></td><td></td></tr>';
var el = YAHOO.util.Dom.insertAfter(html, last_row); // el is being set to NULL so the insert is failing
YAHOO.util.Dom.get('form_urls').reset();
}
},
failure: function(o) { error(); }
};
答案 0 :(得分:1)
您不能在节点后插入html字符串。尝试创建一个row元素,在其中插入html并追加row元素:
var callback = {
success: function(o) {
var result = YAHOO.lang.JSON.parse(o.responseText);
if (result.success == true) {
var last_row = YAHOO.util.Dom.getLastChild('tbody_urls');
var html = '<th>' + result.name
+ '</th><td><a href="' + result.url + '" title="' + result.url + '">' + result.url.substr(0, 80) + '</a></td><td></td><td></td>';
var row=document.createElement("tr");
row.innerHTML=html;
var el = YAHOO.util.Dom.insertAfter(row, last_row); // el is being set to NULL so the insert is failing
YAHOO.util.Dom.get('form_urls').reset();
}
},
failure: function(o) { error(); }
};
<强>更新强> 为每个td和th
创建一个dom元素var callback = {
success: function(o) {
var result = YAHOO.lang.JSON.parse(o.responseText);
if (result.success == true) {
var last_row = YAHOO.util.Dom.getLastChild('tbody_urls');
var row=document.createElement("tr");
var th=document.createElement("th");
th.innerHTML=result.name;
row.appendChild(th);
var td=document.createElement("td");
td.innerHTML='<a href="' + result.url + '" title="' + result.url + '">';
row.appendChild(td);
row.appendChild(document.createElement("td"));
row.appendChild(document.createElement("td"));
var el = YAHOO.util.Dom.insertAfter(row, last_row); // el is being set to NULL so the insert is failing
YAHOO.util.Dom.get('form_urls').reset();
}
},
failure: function(o) { error(); }
};
答案 1 :(得分:0)
最好使用appendChild
,因为如果没有现有的tr,insertAfter
将无效。
<snip>
var tbody = YAHOO.util.Dom.get('tbody_urls');
tbody.appendChild(row);