测试数组中每个项的内容
Testing contents of each item in an array
我知道我一定在做一些愚蠢的事情,但请快速提醒一下可能会对我有所帮助。
我使用了几种方法将节点列表转换为数组。我不会让你厌烦各种各样的尝试。是的,我可以读取新数组,但尝试检查其中一个数组项是否包含特定的字符串模式失败。
一个例子:
function getthelinks() {
var nl = document.querySelectorAll('a');
var arr = Array.prototype.slice.call(nl);
for (var i = 0; i < arr.length; i++) {
var n=arr[i].indexOf(".mov"); // <------- it's this that fails!
}
}
因此,我们的想法是测试页面中的链接,寻找以"a href"调用.mov格式电影URL结尾的电影链接。
这是为了让我可以将页面阅读器发送到一个新的页面,html5格式,以查看视频,而不是下载它。
那么,为什么我得到TypeError: nl[i].indexOf is not a function
呢?
我只是想找到一种快速的方法来列出直接指向页面中电影文件的链接调用,而无需直接编辑页面。
非常感谢任何能向我展示我犯的愚蠢错误的人。
删除了失败代码行的页面如下:http://www.microscopy-uk.org.uk/AAA-test-intercept.html
由于您试图在HTML节点上使用indexOf
(一种字符串方法),因此发生错误。必须首先访问节点的href
属性:var n = arr[i].href.indexOf(".mov");
。
此外,如果你只想知道url是否以.mov结尾,你可以使用如下测试:
if (arr[i].href.endsWith(".mov")) {
// Do some magic.
}
这是对Andrew的回答的支持,它确实完全解决了您的问题。
此外,您可以通过以下简洁的方法找到href attributr值以.mov结尾的锚元素:
var movLinks = document.querySelectorAll("[href$='".mov'"]");
这样你就不需要循环和过滤了。
相关文章:
- 测试数组中每个项的内容
- 为什么当我在数组上测试regex时,它会返回false
- Jasmine spyOn使用伪造的返回数组测试功能
- 在JS数组中测试NaN
- 测试对象数组中是否存在值
- 润滑猴测试数组元素是否存在
- 如何测试包含未定义元素的数组的相等性
- 单元测试数组推送
- 茉莉花测试敲除可观察数组
- 如何编写一个测试来验证函数是否已成功将字符串列表(在数组中指定)打印到屏幕上
- 在 JS 数组中的对象上进行测试
- 开玩笑:测试数组的随机位置
- 测试数组是否包含八个 3 键值中的任何一个 - 井字游戏
- JavaScript 字符串测试与正则表达式数组
- 测试数组中的任何项是否返回 true
- 使用 javascript/jQuery 测试函数的数组
- 在 JavaScript 中测试多维数组
- 测试数组中所有关键字的文本区域
- 测试数组中的数据是否具有Javascript值
- 使用量角器从数组测试中获取数据