我尝试做的是找到包含https的页面上的所有链接,如果有,请执行某些操作。但是,当我使用控制台在Chrome中运行此操作时,我收到类型错误:无法调用方法' indexOf'为null。我在SO上读过如果一个值以undefined的形式返回,那么它就会破坏这个功能。所以我想知道如何忽略没有onclick值的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');
}
});
答案 0 :(得分:2)
您可以使用选择器
$("a[href*='https:'][onclick]")
仅选择在href中具有“https”和“onclick”属性的锚标记。
答案 1 :(得分:2)
首先检查blah
是否存在:
$("a[href*='https:']").each(function () {
var blah = $(this).attr('onclick');
if (blah && blah.indexOf('_gaq') === 0) {
console.log('contains gaq');
}
});
答案 2 :(得分:0)
显然,某些onclick
没有定义<a>
。您可以添加逻辑以检查onclick
是否存在。
$("a[href*='https:']").each(function () {
var blah = $(this).attr('onclick');
if (blah !== undefined) {
if (blah.indexOf('_gaq') === 0) {
console.log('contains gaq');
}
}
});