Javascript中的当前元素是什么?

时间:2012-02-09 11:11:52

标签: javascript dom this

如何找出<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!

那么,建议?我搜索过,但找不到它。它是如此简单以至于我忽视了显而易见的事情吗?

4 个答案:

答案 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>