在querySelectorAll的选择器中使用变量
Using a variable inside a selector for querySelectorAll
我正在用Nightwatch编写一个单元测试脚本,并试图迭代页面上几个子元素中包含的任何"a"标记。我试图使用querySelectorAll来获取每个子级中"a"标记的数量,但当我向选择器引入迭代变量时,该语句似乎不起作用。
在for循环中调用以下函数,并传递x变量:
browser.execute(function() {
return document.querySelectorAll("div.field-item.even *:not(a):nth-child(" + x + ") a").length;
},
function(links){
a_total = links.value;
console.log("a total: " + links.value);
});
这个上下文中的x变量应该是1,但这就是代码返回的值,而不管x等于什么:
a total: [object Object]
我不知道它为什么要返回一个对象,而它应该返回一个数字。如果我把x变量换成一个静态数字,它似乎也很奇怪。例如,
return document.querySelectorAll("div.field-item.even *:not(a):nth-child(1) a").length;
给我以下信息:
a total: 2
我不知道选择器为什么返回一个对象。我以为选择器只是一个字符串。为什么当我把一个变量放入选择器字符串时,它似乎不起作用?
问题似乎是因为我没有将x传递给.execute函数。我找到了一个关于这个问题的GitHub主题。
以下代码似乎有效:
browser.execute(function(x) {
return document.querySelectorAll("div.field-item.even *:not(a):nth-child(" + x + ") a").length;
}, [x],
function(links){
console.log("a total: " + links.value);
});
相关文章:
- AngularJS-在JSON选择器中使用变量名
- 通过Ember颜色选择器更新SCSS变量
- 在我的情况下,使用带有变量失败的 jquery 选择器
- 如何为HTML属性/选择器创建全局名称空间或变量
- 从Function触发JQuery UI日期选择器,并将日期存储到变量中
- 连接变量 + 选择器
- 如何在日期选择器中的单独变量中获取日期月份和日期
- 在 Jquery 中更改变量选择器的属性
- 如何刷新存储和快照的 jquery 选择器变量
- 如何组合Datepicker&一个变量中的时间选择器
- AngularUI日期选择器将变量传递给minDate和maxDate
- 包含HTML的变量上的jQuery选择器
- 将日期值(存储在变量中)分配给日期选择器
- 带有变量选择器的 Jquery 不起作用
- 有没有办法在javascript或jquery中创建变量选择器
- jQuery 变量选择器
- 如何使用jquery检查变量选择器中的属性
- JQuery val()未定义的文本区域与变量选择器
- Jquery不与变量选择器工作
- jQuery .on Event不能与变量选择器一起工作