jQuery .each 返回 TypeError: 无法调用未定义的方法 'indexOf'
jQuery .each returning TypeError: Cannot call method 'indexOf' of undefined
我想做的是找到页面上包含https的所有链接,如果它们这样做,请做一些事情。但是,当我使用控制台在 Chrome 中运行它时,我收到一个类型错误:无法调用 null 的方法"indexOf"。我已经在SO上读到,如果一个值作为未定义返回,那么它会破坏函数。所以我想知道如何忽略没有点击值的 https?(顺便说一句,我正在慢慢学习javascript/jquery)。谢谢
$("a[href*='https:']").each(function(){
var blah = $(this).attr('onclick');
console.log(blah);
if(blah.indexOf('_gaq') === 0){
console.log('contains gaq');
}
});
您可以使用选择器
$("a[href*='https:'][onclick]")
仅选择在其 href 中同时具有"https"和"onclick"属性的锚标记。
参考:多属性选择器
首先检查blah
是否存在:
$("a[href*='https:']").each(function () {
var blah = $(this).attr('onclick');
if (blah && blah.indexOf('_gaq') === 0) {
console.log('contains gaq');
}
});
显然没有为某些<a>
定义onclick
。您可以添加逻辑来检查onclick
是否存在。
$("a[href*='https:']").each(function () {
var blah = $(this).attr('onclick');
if (blah !== undefined) {
if (blah.indexOf('_gaq') === 0) {
console.log('contains gaq');
}
}
});
相关文章:
- 为什么我得到“;没有方法'indexOf'"在ExtJS4.2中尝试在网格上使用缓冲渲染器时出错
- JavaScript 中的 indexOf 方法
- 对象不支持在调用 indexOf 定义的数组时 IE8 中未定义的此属性或方法
- Javascript无法调用方法'indexOf'的未定义
- 如何使用 indexOf 方法检查数组中是否存在“未定义”
- 使用 indexOf 方法在二维数组中查找值
- “未捕获的类型错误:无法调用未定义的方法'indexOf'”时选择jqgrid行
- Javascript indexOf 方法不适用于 Object 中的整数
- 有没有替代 indexOf for jQuery 的方法
- Javascript 中的 indexOf 方法
- 返回未捕获类型错误的 Javascript:无法调用未定义的方法 'indexOf'
- jQuery .each 返回 TypeError: 无法调用未定义的方法 'indexOf'
- 无法使Array.indexOf方法在Javascript中工作
- javascript中的IndexOf方法是否比遍历数组更有效
- 对象数组中的 indexOf 方法
- 在Javascript数组中使用indexOF方法
- 在jquery中是否有类似indexof()的方法?或者怎么做
- JavaScript: indexOf方法在字符串和数组上的效率差异
- SCRIPT438:对象不支持属性或方法'indexOf'
- 未捕获的类型错误:无法调用未定义的方法“indexOf”