想写一个通过table的迭代产生的类似于树一样的结构。html里是这样的。<a id='add' href="#new_book_item" data-id='1'tableName='root' data-rel='dialog' data-role='button' data-iconpos="notext"data-icon='Plus'></a> <table border='1'id='root'>
<tr><td></td></tr>
</table>然后当我点击a的时候出来一个对话框,然后获取到了bookName和bookID,bookImage,tableName在a里面
,然后调用addChild函数。为什么有时候这个函数会自己运行2遍什么的,也没有实现功能,不知道怎么回事,刚学js(也用了jq),然后本人也不聪明,只能请教大家了。PS:第一次发帖,求指导。function addChild(bookName,bookImage,tableName,bookID){
checkChildTd=$('#root').children('tr').length;
alert(checkChildTd);
parentNode=$(tableName).children('tr');
ChildTd=document.createElement('td');
ChildTr=document.createElement('tr');
if(checkChildTd==0){
parentNode.append(ChildTd);
}
newDiv=document.createElement('div');
newImg=document.createElement('img');
newTable=document.createElement('table');
newLink=document.createElement('a');
newTable.setAttribute('tableName',bookName);
newImg.setAttribute('src',bookImage);
newImg.setAttribute('data-rel','dialog');
parentNode.eq(checkChildTd-1).append(newDiv);
parentNode.eq(checkChildTd-1).append(newTable);
newTable.appendChild(ChildTr);
ChildTr.appendChild(ChildTd);
newDiv.appendChild(newImg);
newDiv.appendChild(newLink);
parentNode.append(ChildTd);
}
javascript

解决方案 »

  1.   

    LZ A元素的click事件是怎么绑定的?
    另外,帮LZ整理下代码,LZ试一下checkChildTd=$('#root tr td').length;
    alert(checkChildTd);
    var ChildTr = null;
    var ChildTd = null;
    var newImg = null;
    var newDiv = null;
    var newTable = null;
    var newLink = null;
    $("#root tr").each(function() {
        var parentNode = $(this);
        ChildTd = $("<td></td>");
        ChildTr = $("<tr></tr>");
        if(checkChildTd==0){
            newDiv = $("<div></div>");
            newImg = $("<img></img>");
            newTable = $("<table></table>");
            newLink = $("<a></a>");
            $(newTable).attr("tableName", bookName);
            $(newImg).attr({ "src": bookImage, "data-rel": "dialog" });
            $(newImg).appendTo(newDiv);
            $(newLink).appendTo(newDiv);
            $(ChildTd).appendTo(ChildTr);
            $(ChildTr).appendTo(newTable);
            $(newTable).appendTo(ChildTd);
            $(newDiv).appendTo(ChildTd);
            $(ChildTd).appendTo($(this));
        }
    });