循环通过特定行/设置功能的兄弟姐妹

时间:2010-03-17 10:08:10

标签: javascript

尝试通过我的javascript书我正在引用学习语言并且无法循环通过特定行的兄弟。 W3schools和W3没有我想要的东西。下面是一个功能演练...

它的内容如下:创建countRecords()函数。此函数的目的是计算表标题后数据表中可见行的数量。然后,总数将显示在表格单元格中,ID为“records”。将以下命令添加到函数:

一个。创建一个名为headRow的对象,该对象指向具有id“titleRow”的表行。创建一个名为rowCount的变量,将其初始值设置为0。

湾创建一个for循环,使用从headRow的第一个兄弟开始的家族引用,并移动到下一个兄弟,直到没有兄弟姐妹离开。在for循环中。测试当前下一个兄弟的节点名称,直到没有剩余的sibilings。在for循环测试中,当前节点的节点名称是否等于“TR”。如果是,则测试其显示样式的值是否等于空文本字符串。如果是(表示它在文档中可见)将rowCount变量的值增加1。

℃。将“records”表格单元格的文本更改为rowCount变量的值。不要使用innerHTML。创建一个包含rowCount变量值的文本节点,并将其分配给名为txt的变量。创建一个名为record的变量来存储对元素“records”表格单元格的引用。

d。插入if条件以测试“records”单元格是否具有任何子节点。如果是,请将“记录”表格单元格的文本节点替换为创建的文本节点(txt)。如果它没有将文本节点附加到单元格。

  var headRow;      // part a
  var rowCount = 0; 

//部分b这是我迷路的地方。我知道我需要访问id titleRow但不确定如何专门为此

设置我的循环
   headRow = document.getElementById("titleRow"); 
   for(var i=0; i<headrow.length; i++)
{
if (something is not equal == "TH")
      {
      make code happen here
      }
     if (is "TR" == ""){
     rowCount = +1;
}

// part c

var txt = document.createTextNode(rowCount); 
var record = document.getElementsById("records")

//部分d暂停这一部分,直到我得到a,b,c想出来。

HTML支持代码段:

<table id="filters">
<tr><th colspan="2">Filter Product List</th></tr>
<tr>
<td>Records: </td>
<td id="records"></td>
</tr>

<table id="prodTable">
<tr><th colspan="8">Digital Cameras</th></tr>
<tr id="titleRow">
<th>Model</th>
<th>Manufacturer</th>
<th>Resolution</th>
<th>Zoom</th>
<th>Media</th>
<th>Video</th>
<th>Microphone</th>
</tr>

感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

您应该查看nextSibling属性。我不确定您要严格遵循自己的书,但while循环似乎比for更合适:

var headRow  = document.getElementById("headRow");
var rowCount = 0;
var cRow     = headRow;  // used as a reference to the current row

while (cRow = cRow.nextSibling)  // While there is a next sibling, loop
{
    if (cRow.tagName == "TR" && cRow.style.display === "")
        rowCount++;      // increment rowCount by 1
}

如果您坚持使用for循环,我想您可以这样做:

var headRow  = document.getElementById("headRow");
var rowCount = 0;
for (var cRow = headRow.nextSibling; cRow = cRow.nextSibling;)
{
    if (cRow.tagName == "TR" && cRow.style.display === "")
        rowCount++;      // increment rowCount by 1
}

答案 1 :(得分:0)

  

/ **      *调度命令以检索WebElement的数量      *此函数可以从您的Helper控件调用到您的页面对象      * 方法      * /

  console.log('Driver: ' + this.driver);
  let test = await this.driver.findElements({css: this.cssLocator})
  console.log('--test: ' + test);
  console.log('--test length: ' + test.length);
  return test.length;