[英]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.