单击链接时更改内容,Javascript

时间:2013-07-18 02:05:00

标签: javascript html

我在一个网站上有这个工作,我试图重新创建它,但现在它没有工作......我希望通过Javascript替换内容,在没有加载的情况下更改内容。

这是HTML:

<li><a onclick="mish()">Click me</a></li>

<div id="about">
  <h2>Im a header.</h2>
  <p>And Im a paragraph!</p>
</div>

这是JS,位于外部.js文件中:

function mish()
{
document.getElementById("about").innerHTML='<h2>Header am I.</h2>
<p>Paragraph am I and too.</p>';
}

并且它们与html的头部中的这一行相关联(我也在体内试过):

<script type="text/javascript" src="script.js"></script>

同样,我复制了我所做的其他网站上的所有代码,这些代码仍然有效,所以我非常不知道为什么这个代码无效。

编辑:这是头部:

<head>
    <title>Shaq</title>
    <link rel="stylesheet" type="text/css" href="style.css">
    <script type="text/javascript" src="script.js"></script>
</head>

DOUBLE EDIT:和整个身体:

<body>

<div class="crusty">

    <div class="content">

        <nav>   
            <ul>
                <li><a onclick="bout()">Click Me</a></li>
                <li><a onclick="mish()">Click Me</a></li>
            </ul>
        </nav>

        <div class="actual">

            <div id="about">
            <h2>Im a Header</h2>
            <p>And Im a Paragraph</p>
            </div>

        </div><!-- end actual -->

    </div><!-- end content-->

</div><!-- end crusty -->

</body>

和TRIPLE EDIT显示.js文件的确切内容:

function mish() {
    document.getElementById("about").innerHTML = '<h2>Header am I.</h2>'+ '<p>Paragraph am I and too.</p>';
}

2 个答案:

答案 0 :(得分:1)

在JavaScript中编写多行字符串的常见做法如下。目前,您在字符串中有一个换行符(未转义),这在JavaScript中是不允许的。

function mish() {
    document.getElementById("about").innerHTML = [
        '<h2>Header am I.</h2>',
        '<p>Paragraph am I and too.</p>'].join('\n');
}

主要内容是换行符可以在JavaScript字符串中以\n形式传达。

答案 1 :(得分:1)

您已发布代码片段,但未向我们显示完整的HTML。尝试使用此代码,因为这是你应该这样做的。

<html>
<head>
<script type="text/javascript">
   function mish() {
      document.getElementById("about").innerHTML = '<h2>Header am I.</h2><p>Paragraph am I and too.</p>';
    }
</script>
</head>
<body>
    <li><a onclick="javascript:mish();">Click me</a>
    </li>
    <div id="about">
         <h2>Im a header.</h2>    
         <p>And Im a paragraph!</p>
    </div>
</body>
</html>

这应该有效。检查你在做什么不同。

如果您使用JS的外部文件,请将以下代码复制到JS文件中:

   function mish() {
      document.getElementById("about").innerHTML = '<h2>Header am I.</h2><p>Paragraph am I and too.</p>';
    }

确保不要将其包含在<Script></script>标记内。你不需要这个。 然后将此JS文件保存在HTML文件的确切位置。

最后在你的头部分包括这个:

<script type="text/javascript" src="script.js"></script>

而且,这必须起作用。