用onclick将代码行写入div

时间:2016-10-29 20:29:27

标签: javascript html html5

我希望javascript在我的div中编写特定的代码行,以便在特定日期按下按钮时激活链接。

使用Javascript:

function todaydate() {
    var d=new Date();
    d.setDate("Oktober 29, 2016")
    document.getElementById('Vign1').innerHTML ="<a href="layout.php">";
}

按钮的Html:

<div id="Vign1">
 <button onclick="todaydate();">    
 </button>
 </a>
 </div> 

所以我的想法是,如果在f.e.点击按钮。 2016年10月29日,我的javascript添加了代码行来完成链接并激活它。有人可以帮助我,为什么它不起作用?

编辑:

日期检查不起作用。有人可以帮忙吗?它只应在特定日期或之后激活。但它不会起作用.. 我目前的代码:

function todaydate() {
var submitDate = new Date();
var oct30 = new Date("October 30, 2016 00:25:00 ");
if (oct30.getTime() == submitDate.getTime()) {

  document.getElementById('link').setAttribute('href', 'layout.php');
}
else if (oct30.getTime() != submitDate.getTime()) {
document.getElementById('link').setAttribute('href', 'nichtverfuegbar.php');

}

1 个答案:

答案 0 :(得分:3)

这里有几个问题:

document.getElementById('Vign1').innerHTML ="<a href="layout.php">";

这不会起作用,因为你的html字符串中嵌套了双引号。必须是这样的:

document.getElementById('Vign1').innerHTML ="<a href='layout.php'>";

然而,这也不是你想要的。这将只用开始标记覆盖div中的所有html,包括按钮,结束标记等。

另外,当您尝试编写链接时,您的链接中没有文字 - 如何看到任何内容点击?

这是一种方法。 (你也可以让onclick函数将整个链接添加为元素,如果这对你的用例更好。)注意 - 你仍然没有写任何实际的日期检查逻辑。我假设你接下来要做到这一点。在添加之前,此按钮将始终创建链接。

function todaydate() {
  var d = new Date();
  d.setDate("Oktober 29, 2016")

  document.getElementById('link').setAttribute('href', 'layout.php');

  // optional, for demo purposes
  document.getElementById('link').innerText = 'A link!';
}
<div id="Vign1">
  <button onclick="todaydate();">Click me!
  </button>
  <a id="link">Not a link</a>
</div>