1

私がやろうとしているのは、https を含むページ上のすべてのリンクを見つけて、それらが含まれている場合は何かをすることです。ただし、コンソールを使用して Chrome でこれを実行すると、Type Error: Cannot call method 'indexOf' of null. が表示されます。SO で、値が未定義として返された場合、関数が壊れることを読みました。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');
    }
});
4

3 に答える 3

2

セレクターが使える

$("a[href*='https:'][onclick]")

href に「https」属性と「onclick」属性の両方を持つアンカー タグのみを選択するには、次のようにします。

参照:複数属性セレクター

于 2013-09-16T23:13:00.880 に答える
2

blah最初に存在することを確認します。

$("a[href*='https:']").each(function () {
    var blah = $(this).attr('onclick');

    if (blah && blah.indexOf('_gaq') === 0) {
        console.log('contains gaq');
    }
});
于 2013-09-16T23:25:45.873 に答える
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');
        }
    }
});
于 2013-09-16T23:21:30.750 に答える