0

次のプロット関数があります。

function plot(selector, data) {
  var context = selector.get(0).getContext("2d");
  var wrapper = $(selector).parent();
}

そして、私のjavascriptメインファイルには次のものがあります:

plot($('#pageviews'), data);

一部のページでは pageviews アイテムを使用しないため、次のエラーが発生します: TypeError: selector.get(...) is undefined

セレクターが定義されているかどうか、プロット関数内で確認するにはどうすればよいですか?

未定義の場合は、プロット関数を終了します。

ありがとう、ミゲル

4

6 に答える 6

3

長さのプロパティを使用:

if ( 0 < selector.length ) 
于 2013-10-06T15:27:57.213 に答える
3

.lengthセレクターが存在するかどうかを確認するために使用できます。

if (selector.length > 0){
  // do something here
}
于 2013-10-06T15:28:00.530 に答える
2

それは配列です。

セレクターは選択した要素の配列を返すので、 をチェックしますlength。これを使用できます

if ($('#pageviews').length >0 ) {
    //call plot
}

あるいは

if( $('#pageviews').get(0) ) {    
//call plot
}
于 2013-10-06T15:28:09.283 に答える
1

これを使って:

function plot(selector, data) {
  if (!!selector.length) {
    // no element was found
  }

  var context = selector.get(0).getContext("2d");
  var wrapper = $(selector).parent();
}

これにより、jQuery の結果オブジェクトに要素が含まれているかどうかがチェックされます。

于 2013-10-06T15:28:01.477 に答える