1

div 内にスクリプトがある場合、その特定の div の ID を取得するにはどうすればよいですか?
(そのため、以下のようにできますが、さまざまな div id を使用します):

<div id="chart_div1" class ="googlepie">
<script type="text/javascript">
   drawChart('chart_div1');
</script>
</div>

[編集]:
2 つの html ビューがあり、1 つのビューのボタンをクリックすると 2 番目のビューが表示されます。
一部の JavaScript はこれを行うために html を再構築しますが、チャートを 2 番目のビューにのみ表示したかったので、これを処理するクリック イベントがあります。
しかし奇妙なことに、上記のように、drawChart() を呼び出すスクリプトを div 自体に配置することで、特定の div (複数の繰り返し) に特定のチャートをロードすることしかできませんでした。このため、一部の人が提案したように、スクリプトをより快適な位置に移動できませんでした。また、私が試した親の div 'ID' を取得するための提案された方法に関係なく、「未定義のコンテナー」エラーが発生し続けました。

たとえば、これは私にとってはうまくいきませんでした:

<div class ="googlepie" id="chart_div1" style ="position:absolute; top: -8%; left:63%;">
<script type="text/javascript" class ="chartscript" id="bakegooglepie">
    // drawChart($('.chartscript').parent().attr('id'));  // this didnt work
    // drawChart($('#bakegooglepie').parent().attr('id'));  // neither did this

    // var parentElementID = $(document.body.lastChild).closest('div').id;
    // drawChart(parentElementID); // this didnt either

    drawChart('chart_div1');   // only this did
</script>

このため、私の(特定の)解決策は、ID を作成し、javascript で ID を取得する代わりに、drawChart で具体的に呼び出すことです。
しかし、私は元の質問に対する答えを、他の誰もが働いているように見えるものであると選択したので、他の人のために働くべきです.

注:ほとんどの状況で他の人が示唆しているように、私の質問が想定するように親IDを取得する必要はありません。

4

3 に答える 3

2

jQuery を使用して親 div の ID を取得するには:

     $(this).parent().attr('id')

あなたの場合:

    <div id="chart_div1" class ="googlepie" style ="position:absolute; top: -4%; left:68%;">
    <script type="text/javascript" id='example'>
      drawChart($('#example').parent().attr('id'));
    </script>
    </div>
于 2013-08-19T02:33:29.027 に答える
1

script タグがページのどこにあるかは関係ありません。あなたはまだ使用する必要があります

document.getElementById('chart_div1');

タグに関連する要素を取得することはできません<script>。さらに、あなたIDの はとにかく一意でなければならないので、問題にはなりません。

実際には、これを行う方法がいくつかありますが、それほど価値はありません。それを行うとdocument.body.lastChild、ページが通常とわずかに異なってロードされると、スクリプト全体が壊れる可能性があります。

于 2013-08-19T02:32:30.183 に答える
1

これを試してください(jQuery):

<div id="chart_div1" class ="googlepie" style ="position:absolute; top: -4%; left:68%;">
    <script type="text/javascript">
        var parentElement = $(document.body.lastChild).closest('div');
        drawChart(parentElement);
    </script>
</div>

またはこれ (基本的な JavaScript):

<div id="chart_div1" class ="googlepie" style ="position:absolute; top: -4%; left:68%;">
    <script type="text/javascript">
        var scriptTag = document.scripts[document.scripts.length - 1];
        var parentTag = scriptTag.parentNode;
        drawChart(parentTag.id);
    </script>
</div>

詳細については、こちらを参照してください: <script> 要素の親を選択する方法

これはそれを達成する方法に関するあなたの質問に答えますが、これは最善のアプローチではないと思います. JavaScript コードを HTML ドキュメントの最後に配置し、適切なセレクターを使用して要素をターゲットにする必要があります。

乾杯!

于 2013-08-19T02:39:08.303 に答える