Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过特定行/设置函数的同级循环_Javascript - Fatal编程技术网

Javascript 通过特定行/设置函数的同级循环

Javascript 通过特定行/设置函数的同级循环,javascript,Javascript,为了学习这门语言,我试图阅读我正在引用的javascript书籍,但却被困在特定行的兄弟循环中。W3学校和W3没有我想要的。下面是一个函数遍历 它的内容是:创建countRecords()函数。此函数的目的是统计数据表中表标题后的可见行数。总数随后显示在id为“records”的表格单元格中。将以下命令添加到函数中: a。创建一个名为headlow的对象,该对象指向id为“titleRow”的表行。创建一个名为rowCount的变量,将其初始值设置为0 b。创建一个for循环,该循环使用家族引用

为了学习这门语言,我试图阅读我正在引用的javascript书籍,但却被困在特定行的兄弟循环中。W3学校和W3没有我想要的。下面是一个函数遍历

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

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

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

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

d。插入一个if条件,测试“records”单元格是否有任何子节点。如果是,则用创建的文本节点(txt)替换“记录”表格单元格的文本节点。如果未将文本节点附加到单元格中

  var headRow;      // part a
  var rowCount = 0; 
//这是我迷路的地方。我知道我需要访问id标题,但不确定如何专门为此设置循环

   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;
}
//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>

筛选产品列表
记录:
数码相机
模型
制造商
决议
快速移动
媒体
视频
话筒
谢谢你的帮助

你应该检查一下酒店。我不确定你想严格遵守你的书,但是
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
}
/** *安排命令以检索WebElements的计数 *此函数可以从助手控件调用到页面对象 *方法 */


请解释您的答案,不要只发布代码。虽然此代码可能会解决问题,但如何以及为什么解决问题将真正有助于提高您的帖子质量,并可能导致更多的投票。请记住,你是在将来回答读者的问题,而不仅仅是现在提问的人。请在回答中添加解释,并说明适用的限制和假设。
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
}
  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;