繁体   English   中英

如果我在div中有一个脚本,我如何获得该特定div的id? <br>

[英]If i have a script inside a div, how do i get the id of that particular div? <br>

如果我在div中有一个脚本,我如何获得该特定div的id?
(所以我可以像下面这样做,但有不同的div id):

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

[编辑]:
我有两个html视图,当单击一个视图的按钮时,将显示第二个视图。
一些javascript重建html来做到这一点,我只希望图表显示在第二个视图上,所以我有一个点击事件处理这个。
但奇怪的是,我只是设法通过在div本身中调用drawChart()的脚本来加载特定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并在drawChart中专门调用它们,而不是使用javascript获取id。
但是,我选择原始问题的答案是其他人似乎都在努力的答案,因此应该为其他人工作。

注意:正如其他人在大多数情况下建议的那样,你不应该像我的问题那样得到父ID。

使用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>

脚本标记在页面上的位置没有区别。 你还是要用

document.getElementById('chart_div1');

您无法获取与<script>标记相关的元素。 另外,你的ID应该是独一无二的,所以它无所谓。

实际上,有几种方法可以做到这一点,但它甚至不值得。 通过使用document.body.lastChild ,如果页面加载甚至与正常情况略有不同,它可能会破坏整个脚本。

试试这个(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文档的末尾,并使用适当的选择器来定位元素。

干杯!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM