【问题标题】:SilverlightJavascript loop through childrens of an elementSilverlight Javascript 循环遍历元素的子元素
【发布时间】:2015-05-24 20:44:36
【问题描述】:

我的 xml 中有这个设置

  <Grid x:Name="Vakken" Visibility="Collapsed">
     <TextBlock Text="1" Visibility="Collapsed"/>
     <TextBlock Text="2" Visibility="Collapsed"/>
     <TextBlock Text="3" Visibility="Collapsed"/>
     <TextBlock Text="4" Visibility="Collapsed"/>
     <TextBlock Text="5" Visibility="Collapsed"/>
     <TextBlock Text="6" Visibility="Collapsed"/>
     <TextBlock Text="7" Visibility="Collapsed"/>
     <TextBlock Text="8" Visibility="Collapsed"/>
  </Grid>

我想要做的是遍历Grid的所有元素

classViewPage = document.getElementById('SchermPage');
gridElements = classViewPage.content.findName('Vakken').children;
for (var i = 0; i < gridElements.count; i++) {
        vakkenNamen += gridElements.children[i];
}

我已经尝试过了,但它不起作用。一旦我尝试使用[i] 获取元素,它就会停止。

计数本身有效

【问题讨论】:

    标签: javascript silverlight-4.0


    【解决方案1】:

    如果你想访问一个数组元素,你不需要children后面的点:

    vakkenNamen += vakkenElementen.children[i];
    

    你还没有定义vakkenElementen,是吗?您应该将其存储在一个变量中:

    var vakkenElementen= classViewPage.content.findName('Vakken');
    gridElements = vakkenElementen.children;
    

    完成此操作后,代码应按预期工作。

    编辑:根据 OP 的编辑,将 vakkenNamen 更改为 vakkenElementen

    编辑:问题的另一个编辑,考虑到这一点,这个循环应该可以工作:

    for (var i = 0; i < gridElements.count; i++) {
            vakkenNamen += gridElements[i];
    }
    

    【讨论】:

    • Srr 只是一个错字,但这不是问题
    • Srr 但 vakkenElementen 应该是 gridElements
    • @Kupi 考虑我的最后一次编辑。 gridElements 已经包含了Vakken 的孩子,不需要在循环中再次使用children
    • @Kupi 请定义“不工作”。您收到什么错误消息?
    • 当我尝试用 [] 获取一些东西时。我现在尝试在循环之前提醒第一个元素的文本,但它给出了错误,因此错误不在循环中。这就是我得到的。 localhost:1971/Javascript/Scherm.js 0x80004005 第 14 行第 5 列未处理的异常 - Runtime-fout JavaScript:未知异常
    【解决方案2】:

    试试这个。我认为您有一个语法错误,您不需要额外的“。” 即你的代码是

    vakkenNamen += vakkenElementen.children.[i];
    

    你确实需要

    vakkenNamen += vakkenElementen.children[i];
    

    完整代码:

    classViewPage = document.getElementById('SchermPage');
    gridElements = classViewPage.content.findName('Vakken').children;
    for (var i = 0; i < gridElements.count; i++) {
            vakkenNamen += vakkenElementen.children[i];
    }
    

    vakkenNamen 也被定义了吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-23
      • 2016-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多