javascript - 在 HTML 的 Javascript 函数中附加嵌套元素
问题描述
我正在尝试将另一个 HTML 元素附加到 Javascript 中的元素。
我在下面的功能是在单击“添加”按钮时,用户在文本框中输入的任何内容都会被放入ul
我的菜单中的一个元素中,li
并创建一个元素以将该文本附加到li
元素内。我的函数有效,但我还想在元素内附加一个a href = #> insert text here</a>
嵌套。li
所以我现在的功能是
<ul class = "dropdown-menu">
<li> User Text </li>
</ul>
我想重现这个
<ul class = "dropdown-menu">
<li> <a href ="#">User Text</a> </li>
</ul>
这是我到目前为止所尝试的:
(function() {
document.querySelector('#add').addEventListener('click', function() {
let input = document.querySelector('#addissuetext');
let list = document.querySelector('#menu');
let item = document.createElement('li'); // create li node
let hyper = document.createElement('a');
hyper.href = "#";
let itemText = document.createTextNode(input.value); // create text node
item.appendChild(itemText); // append text node to li node
hyper.appendChild(item);
list.appendChild(item); // append li node to list
input.value = ""; // clear input
});
})();
我也尝试过innerHTML,但我认为这行不通。
解决方案
您需要先将文本附加到锚点,然后将该锚点附加到 li,然后将 li 附加到 ul。
ul > li > a > text
hyper.appendChild(itemText); // append text to anchor
item.appendChild(hyper); // append anchor node to li node
list.appendChild(item); // append li node to list
由于您没有提供片段或完整的 html,这可能会产生一些错误。
(function() {
document.querySelector('#add').addEventListener('click', function() {
let input = document.querySelector('#addissuetext');
let list = document.querySelector('#menu');
let item = document.createElement('li'); // create li node
let hyper = document.createElement('a');
hyper.href = "#";
let itemText = document.createTextNode(input.value); // create text node
hyper.appendChild(itemText); // append text to anchor
item.appendChild(hyper); // append anchor node to li node
list.appendChild(item); // append li node to list
input.value = ""; // clear input
});
})();
推荐阅读
- swift - 如果应用程序未以编程方式安装 firebase 动态链接,则重定向到 iOS App Store
- sql-server - PowerApps 无法通过本地数据网关连接到本地 SQL Server
- xamarin - Xamarin.Forms UWP 应用 Xamarin 编辑器视图不会显示内容
- api - Google plus API 折旧
- javascript - vue.js 方法返回不断更新
- python - 根据范围获取存储在 pandas 数据框列中的值的频率计数,并由分类变量分隔
- c - 在基本 C 编程中使用“If 语句”。如何正确格式化它们?
- javascript - Express - 获取 router.get 以返回 json 数据属性
- java - 使用 JAVA - 如何在不使用数组的情况下计算输入字符串的总和及其长度?
- jquery - Bootstrap 4 在按钮中加载微调器