javascript - 我知道如何使用 javascript (getElementById) 更改文本,但如何使该文本包含例如。链接?

标签 javascript html

所以我知道您可以使用 getElementById 更改网页内的文本。 例如这样的事情:

document.getElementById("article").innerHTML = "Search engine is here.";

但是,例如,我该如何使文本可点击。我想到了这样的事情,但这显然行不通:

document.getElementById("article").innerHTML = "<a onclick="myFunction()" href="#">Search engine is here.</a>"

那么,有人知道怎么做吗?您需要使用 jQuery 吗?

最佳答案

它不起作用,因为你有一个语法错误。这与 jQuery 无关。如果您需要在字符串中使用引号,则需要对字符串中的引号进行转义,或者更改引号。您可以在单引号字符串中嵌入双引号,反之亦然,但要在双引号字符串中包含双引号,您需要通过在引号前面添加一个 \ 来转义它们。

以下三个选项中的任何一个都可以解决问题。

转义:

document.getElementById("article").innerHTML = "<a onclick=\"myFunction()\" href=\"#\">Search engine is here.</a>";

JavaScript 中的单引号,HTML 中的双引号:

document.getElementById('article').innerHTML = '<a onclick="myFunction()" href="#">Search engine is here.</a>';

JavaScript 中的双引号,HTML 中的单引号:

document.getElementById("article").innerHTML = "<a onclick='myFunction()' href='#'>Search engine is here.</a>";

另一种方法是通过 JavaScript 真正构建元素。在此代码段中,您不需要转义引号或混合使用单引号和双引号,尽管了解转义仍然是一件好事,因为如果您继续使用 JavaScript,您将不可避免地需要它。

无论如何,出于教育目的:

var div = document.getElementById("article");

// Create a link element
var link = document.createElement('a');

// Set its properties, events and content
link.href = '#';
link.onclick = function() {
  alert('clicked!');
}
link.innerText = 'Text content of the link';

// Add the link to the div
div.appendChild(link);
<div id="article"></div>

关于javascript - 我知道如何使用 javascript (getElementById) 更改文本,但如何使该文本包含例如。链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31694509/

相关文章:

javascript - 无法读取未定义的属性 'Concat'

javascript - 无法使用 Express NodeJS 和 MongoDB 从 API 检索数据,正在加载

html - "jquery.min.css"和 "jquery.css"有什么区别?

html - CSS 只影响行中的第一张图片

html - 对齐 flex 容器内的 <hr> 元素

javascript - 将内部 Accordion 创建为空 Accordion

javascript - 如何在 .submit() 之后重新加载页面

javascript - 如何让按钮在点击时显示内容?

用于编辑网页的 Javascript 库

javascript - 在其他 php 文件中使用 Javascript 显示表单结果