5

langHTML属性 (要素の言語) の計算値を調べる必要がある場合があります。私はjQueryを使用しています。たとえば、次のコードでは、<p>要素の計算された lang を知りたいので、値を期待しますhe

<!DOCTYPE html>
<html lang="en" dir="ltr">
    <head>
        <meta charset="utf-8" />
        <title>lang test</title>
    </head>
    <body>
        <div lang="ar">
            <div lang="he">
                <p>Hallo.</p>
            </div>
        </div>
    </body>
</html>

$( 'p' ).attr( 'lang' )おそらく<p>要素に独自の lang 属性がないため、実行しても何も返されません。

このコードは正しいことをしているようです:

 $( 'p' ).closest( '[lang]' ).attr( 'lang' )

これは機能的に正しいですか?また、jQuery、純粋な JavaScript、または別の JavaScript ライブラリでそれを行うより良い方法はありますか?

ありがとうございました。

4

2 に答える 2

0

この jQuery プラグインで十分です。jQuery オブジェクトの最初の要素のみを考慮します。

(function($) {
    $.fn.lang = function() {
         if (this.length) {
             var node = this[0];
             while (node) {
                 if (node.lang) {
                     return node.lang;
                 }
                 node = node.parentNode;
             }
         }
    };
})(jQuery)

属性が見つからundefinedない場合に返されます。lang

于 2013-05-11T15:31:44.797 に答える