日期:2014-05-16  浏览次数:20391 次

100分,动态生成html中插入一个li标签问题

            function AddLi() {
                debugger;
                //var nod = document.createElement("<li id=\"liQuestionTitle\" ><input  type=\"text\" value=\"题目名称\" id=\"inputQuestionTitle" + selectLiID + "\"  name=\"inputchangeHM\"  onFocus=\"focusHM(this)\" onBlur=\"blurHM(this)\"/></li>");
                var nod = document.createElement("li");
                $("#ulSelect").children("#" + selectLiID).insertBefore(nod);//这句不起作用,li插入不进入ulSelect这个ul下的li3,(selectLiID为li3)
                nod.innerText = "Orange";
            }

正解即结贴。
ulSelect这个UL是用append的方法动态拼成的。
------解决方案--------------------
$("#ulSelect").children("#" + selectLiID).insertBefore("<li>append</li>");
这样试试
------解决方案--------------------
你可能需要添加动态元素到页面上,插入针对的是已经存在的元素
var nod = document.createElement("li");
document.body.appendChild(nod );
------解决方案--------------------
看了下insertBefore的用法,发现使用错了。
insertBefore的用法 $(content).insertBefore(selector);

改成下面这样试试,还有children是找子节点,而不会找子节点的子节点
$("<li>aa</li>").insertBefore($("#ulSelect").find("#" + selectLiID));
------解决方案--------------------

var nod = document.createElement("li"),
      refer=document.getElementById(selectLiID);
nod.innerHTML='Orange';
refer.parentNode.insertBefore(nod,refer);


------解决方案--------------------
$(nod).insertBefore($("#ulSelect").find("#"+selectLiID));