如何找出<script>
所在的元素?
举个例子,让我们来看看这个
<div>
<script type="text/javascript">
var time = new Date(), hrs = time.getHours(), min = time.getMinutes();
document.write('It is '+hrs+":"+(min<10?'0':'')+min);
</script>
</div>
然后,如果我想将其更改为更现代的东西,我怎样才能找到我们所处的元素?
所以我想写,例如在jQuery中
$(thisdiv).html('It is '+hrs+":"+(min<10?'0':'')+min);
但如何获得thisdiv
?
是的,我知道,我可以在上面写上一个ID,但我觉得这不是必要的。浏览器知道我们在哪里,否则它甚至不能写document.write!
那么,建议?我搜索过,但找不到它。它是如此简单以至于我忽视了显而易见的事情吗?
答案 0 :(得分:23)
脚本按文档中的外观顺序执行。脚本标记的内容在遇到时进行评估,因此,最后一个<script>
元素始终是当前元素。
代码:
<div>
<script>
var scriptTag = document.getElementsByTagName('script');
scriptTag = scriptTag[scriptTag.length - 1];
var parent = scriptTag.parentNode;
</script>
</div>
答案 1 :(得分:2)
火狐:
document.currentScript.parentElement
铬:
document.scripts.length
答案 2 :(得分:0)
$('script#some_id').parent().html('blah blah');
答案 3 :(得分:0)
试试这个
<div id="mydiv">
<script type="text/javascript">
var time = new Date(), hrs = time.getHours(), min = time.getMinutes();
document.getElementById('mydiv').innerHTML = 'It is '+hrs+":"+(min<10?'0':'')+min;
</script>
</div>