内联JavaScript未被执行

3
我想使用momentjs将当前时间设置为一个元素。
<span onload="$(this).text(moment().format('MMMM Do YYYY, h:mm:ss a'));"></span>

这个有什么问题?没有显示任何内容。

6
span 元素不会触发 load 事件。 - Felix Kling
最佳答案是mattytommo和camus的结合。 - winner_joiner
2个回答

8

onload并不是你所需要的(它甚至不会工作),你需要在document.ready上执行此操作

我认为你混淆了jQuery和JavaScript,请尝试在脚本块中使用document.ready

首先,我们将给您的span一个ID。

<span id="yourSpan"></span>

然后我们可以这样做:
<script type="text/javascript">
    $(function () {
        $("#yourSpan").text(moment().format('MMMM Do YYYY, h:mm:ss a'));
    });
</script>

编辑:如你所说,你希望将其作为内联代码添加(虽然这是极其不好的做法,我写完后得洗手),仍需像上文一样在 span 中添加你的 ID,但要执行以下步骤:

<body onload="$('#yourSpan').text(moment().format('MMMM Do YYYY, h:mm:ss a'));">

我希望它完全内联。 - daniel
1
@zoidbergi 它必须是内联的限制吗?这真的是一个很糟糕的做法。 - Mathew Thompson
@zoidbergi明智的选择! :) - Mathew Thompson
1
希望你的手再次干净了 ;) - daniel
@zoidbergi 没有什么甲醇和漂白水不能解决的:D - Mathew Thompson

6
标签不支持onload,请使用以下一些支持onload的标签:
<body>, <frame>, <frameset>, <iframe>, <img>, 
<input type="image">, <link>, <script>, <style>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接