使用treewalker修改表
Modify table using treewalker
我正试图使用树浏览器在页面上定位一个表,插入一列,然后根据每行第一个单元格中的值填充该列中的单元格。我做了很多研究,但总是失败。任何能把我推向正确方向的一击都将不胜感激。
document.ondblclick = addElement;
var i = 1;
function addElement () {
var allTextNodes = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT),
// some temp references for performance
tmptxt,
tmpnode,
// compile the RE and cache the replace string, for performance
cakeRE = "Investment"
replaceValue = "TestReplace";
var allElementNodes = document.createTreeWalker(document.body, NodeFilter.SHOW_ELEMENT);
// iterate through all text nodes
while (allTextNodes.nextNode()) {
tmpnode = allTextNodes.currentNode;
tmptxt = tmpnode.nodeValue;
tmpnode.nodeValue = tmptxt.replace(cakeRE, replaceValue);
}
// iterate through all Element nodes
while (allElementNodes.nextNode()) {
tmpnode = allElementNodes.currentNode;
//I know this is not even close to real code but I think it explains what i'm trying to do
IF (tmpnode.tagvalue = "table")
{
tmpnode.insertcolumn
}
If (tempnode.tagvalue = "tr" && Row.contains("Active"))
{
pupulate the cell from the previously created column with "Active Pending";
}
}
}
function PopulateTable() {
var table = document.getElementsByTagName("table")[0];
var rows = table.getElementsByTagName("tr")[0];
for(var i = 0; i< rows.length; i++ ) {
var firstColumn = rows[0].getElementsByTagName("td")[0];
//do your data aggregation here
var newCell = document.createElement("td");
newCell.innerHTML = "some data";//create row here
rows[i].appendChild(newCell);
}
}
我认为你可能用了错误的方式。我建议在这种特殊情况下不要使用助行器。相反,你可以做一些更简单的事情,比如:
function PopulateTable() {
var table = document.getElementsByTagName("table")[0];
var rows = table.getElementsByTagName("tr")[0];
for(var i = 0; i< rows.length; i++ ) {
var firstColumn = rows[0].getElementsByTagName("td")[0];
//do your data aggregation here
}
var newRow = document.createElement("tr");
newRow.innerHTML = //create row here
table.appendChild(newRow);
}
相关文章:
- 在Safari执行javascript之前对其进行修改
- 从客户端获取修改后的对象,并将其与服务器上的原始对象组合
- 用Javascript修改内部标记的CSS规则
- 绑定Range输入以修改样式
- 可以从Chrome扩展修改窗口对象吗
- jQuery滚动器插件修改
- 将函数从onclick修改为onload
- jQuery UI自动完成-修改问题
- Javascript日期修改
- 如何通过JQuery修改样式属性
- 使用treewalker修改表
- Angularjs:修改js中的作用域,稍后在页面中使用
- 在编译阶段后创建新的DOM树,或者继续使用原始修改的DOM
- 修改控制器AngularJS的全局值
- 修改数据后,setState不会触发重新渲染
- 通过sdk/system/events在修改请求观测器上测试http
- GWT:有没有一种方法可以修改GWT在编译中使用的Cast.java文件
- 在多个元素上使用jquery插件,只需稍作修改
- 为什么我从浏览器修改html/js时会多次发送ajax请求
- 动态修改一个元素,使其与给定的选择器匹配