2012-09-20 28 views
0

我有Yii CListView生成的网页,其中包含一个divmultiple child divs。我需要访问一个特定的孩子div并添加一个div成说。HTML - 正是通过位置访问文件格在一个去

虽然我设法解决它使用一种方法,但不认为它是正确的。以下是我的解决方案的概要(下面的代码不包含所有必要的变量声明和其他的东西,我已经贴了核心代码不完整):

  1. 凭身份证访问父DIV(自该标识是可利用的,我可以 这个代码到的Yii)
  2. 获得这一切的元素DIV使用:

    var div_childern = document.getElementById('StudentGridViewId').getElementsByTagName('*'); 
    
  3. 通过迭代,当达到所期望的DIV,加入我的新DIV。请注意,我想添加新div的div的类名称为“items”。代码如下:

    for (var i = 0; i < div_childern.length; i++) { 
        if (div_childern[i].getAttribute('class')=='items'){ 
         document.getElementById('StudentGridViewId').getElementsByTagName('*')[i].appendChild(newdiv); 
         i=div_childern.length+1; 
        } 
        } 
    

在该解决方案唯一的问题是,我访问整个文档两次,调用getElementsByTagName。首先获取所有items的列表,然后再次添加我的新div。有没有更好的方法呢?

还有,是否有人可以指向我设置生成的“项目”divId

感谢 费萨尔

回答

0

你也许可以,如果你使用jQuery获得一个更优雅的解决方案。 但是,如果你想使用传统的JavaScript,这里是你可以做的

for (var i = 0; i < div_childern.length; i++) { 
    if (div_childern[i].getAttribute('class')=='items'){ 
     div_childern[i].appendChild(newdiv); 
     i=div_childern.length+1; 
    } 
    } 
+0

谢谢。有效。 – FaisalKhan

+0

这里是Divya建议的jQuery版本。这是更加优雅和整洁。 。$( '#StudentGridViewId')找到(”项目)预定(newdiv); – FaisalKhan

相关问题