1

私は決して JavaScript 開発者ではありませんが、JS の問題で立ち往生しています。

誰かが問題が何であるかを理解するのを手伝ってくれるなら、それは素晴らしいことです.

落ちているスクリプトのビットは次のとおりです。

        $('button').each(function()
            {
            var curr_title = $(this).attr('title');

            if(curr_title.length > 0)   $(this).button({ icons: { primary: curr_title } });
            else                        $(this).button();
            });

エラーは

TypeError: 未定義のプロパティ '長さ' を読み取れません。

これは、コードの以前のリリースではまったく問題なく機能します。ただし、唯一の変更点は更新された Jquery です。

これが問題になる可能性があるかどうかは誰にもわかりませんか?

また。私が愚かである場合はお詫び申し上げます。

4

3 に答える 3

2

この行で返される値はundefined(おそらく、それが参照するボタンにそのような属性が指定されていないためです)。

var curr_title = $(this).attr('title');

jQueryattr()はバージョン 1.6 での動作を変更しました

jQuery 1.6 以降、.attr() メソッドは、設定されていない属性に対して undefined を返します。

したがって、ifステートメントの呼び出しは失敗します。undefinedこれを「修復」するには、次のようにチェックを追加するだけです。

if( (typeof curr_title != 'undefined') && (curr_title.length > 0)) {
   $(this).button({ icons: { primary: curr_title } });
} else {
   $(this).button();
}
于 2012-09-28T09:24:16.923 に答える
0

$(this).attr('title');は定義されていないため、長さはありません。属性が存在するかどうかをテストする場合は、ボタンにタイトルが含まれていますか?

$('button').each(function()
            {
            var curr_title = $(this).attr('title');

            if(curr_title != undefined)  
                $(this).button({ icons: { primary: curr_title } });
            else                        
                $(this).button();
            });
于 2012-09-28T09:24:05.227 に答える
0

「タイトル」属性のないマークアップにボタンがあるようです。このボタン (またはボタン)curr_titleは定義されていないため、.length を呼び出すと例外が発生します

于 2012-09-28T09:23:05.043 に答える