Javascript onclick 替换 div 内容的整个内部 html

标签 javascript replace onclick innerhtml

当他们点击 THEATER 时,它应该更改为 NORMAL 并带有新功能

示例来自:

<div id="links">
<a onClick="refreshStream()" onmouseover="color:red;" style="cursor: pointer;" draggable="false" oncontextmenu="return false;">&nbsp;&nbsp; REFRESH</a>
<a onClick="TheaterMode()" onmouseover="color:red;" style="cursor: pointer;" draggable="false" oncontextmenu="return false;">&nbsp;&nbsp; THEATER</a>
</div> 

收件人:

<div id="links">
<a onClick="refreshStream()" onmouseover="color:red;" style="cursor: pointer;" draggable="false" oncontextmenu="return false;">&nbsp;&nbsp; REFRESH</a>
<a onClick="normalsize()" onmouseover="color:red;" style="cursor: pointer;" draggable="false" oncontextmenu="return false;">&nbsp;&nbsp; NORMAL</a>";
</div> 

我试过了,但没用,希望有人能帮忙,谢谢。

<script>
document.getElementById("links").innerHTML = "<a onClick="refreshStream()" onmouseover="color:red;" style="cursor: pointer;" draggable="false" oncontextmenu="return false;">&nbsp;&nbsp; REFRESH</a><a onClick="normalsize()" onmouseover="color:red;" style="cursor: pointer;" draggable="false" oncontextmenu="return false;">&nbsp;&nbsp; NORMAL</a>";
</script>

最佳答案

我稍微简化了您的示例。基本上,您需要用单引号将要在 .innerHTML = ... 中分配的 html 括起来,或者使用 \ 转义引号。

简化示例:

// escape quotes with backslash
function theaterMode() {
    document.getElementById("links").innerHTML = "<a onclick=\"refreshStream()\" style=\"cursor: pointer;\">&nbsp;&nbsp; REFRESH</a><a onclick=\"normalSize()\" style=\"cursor: pointer;\">&nbsp;&nbsp; NORMAL</a>";
}

// or wrap HTML with single quotes
function normalSize() {
    document.getElementById("links").innerHTML = '<a onclick="refreshStream()" style="cursor: pointer;">&nbsp;&nbsp; REFRESH</a><a onclick="theaterMode()" style="cursor: pointer;">&nbsp;&nbsp; THEATER</a>';
}

function refreshStream() {
    document.getElementById("links").innerHTML = "<a onclick=\"refreshStream()\" style=\"cursor: pointer;\">&nbsp;&nbsp; REFRESH</a><a onclick=\"normalSize()\"  style=\"cursor: pointer;\">&nbsp;&nbsp; NORMAL</a>";
}
<div id="links">
    <a onclick="refreshStream()" style="cursor: pointer;">&nbsp;&nbsp; REFRESH</a>
    <a onclick="theaterMode()" style="cursor: pointer;">&nbsp;&nbsp; THEATER</a>
</div>

有更简洁的方法可以做到这一点,如果您只是更改第二个链接的功能,那么就没有理由继续更新第一个链接。

希望对您有所帮助。

关于Javascript onclick 替换 div 内容的整个内部 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33093676/

相关文章:

如果 value = something,Mysql 替换行

Android EditText 或可能的 OnClickEvent 问题

css - 使用 HTML、CSS、Jquery 在单击 div 时启用禁用的按钮?

javascript - 大量 JS dom 注入(inject)/操作后的 DOM 验证

javascript - 如何将不属于标签的文本包装在标签中?

javascript - jquery 在即时创建时在 iframe 中运行

Java - 替换单引号而不影响多个单引号

javascript更改多个输入的类onclick

javascript - Underscore.js 一些对象所有方法的总和

javascript - 如何从 Javascript 调用 URL Action ?