将动态创建的按钮的文本内容传递给另一个元素
Passing a dynamically created button's text content to another element
我正在尝试使用纯 javascript 创建单页待办事项应用程序。页面上有一个按钮,它从文本框中获取文本值并创建一个具有该输入值的按钮。我想做的是将用户动态创建的按钮文本值传递给另一个元素,例如 h2 元素。这里有截图来解释我的意思;
键入列表名称并单击“创建列表”按钮;
使用输入的文本值创建了一个按钮。现在,当您单击 List 1 按钮时,该按钮的文本值“List 1”应该传递给右侧的 h2 元素;
到目前为止,这是我的代码;
<div class="container" id="table-and-list-names">
<div class="row">
<div class="col-3">
<ul class="nav flex-column" id="list-names">
<!--Names of Lists created by user will be here-->
</ul>
</div>
<!--TABLE-->
<div class="col-9">
<h2 id="current-list-name">Select Todo List</h2>
//...
创建按钮;
export function createButton(listName) {
const listOfLists = document.querySelector('#list-names');
const newList = document.createElement('li');
const newListButton = document.createElement('button');
newListButton.classList.add("btn", "btn-sm", "btn-outline-primary", "created-list");
newListButton.innerText = listName;
newList.appendChild(newListButton);
listOfLists.appendChild(newList);
}
我尝试使用此代码传递文本值,但没有成功;
const currListName = document.querySelector('#current-list-name');
var buttons = document.getElementsByClassName('.created-list');
var buttonCount = buttons.length;
for (var i = 0; i <= length; ++i)
buttons[i].onClick = function(e) {
currListName.textContent = buttons[i].textContent;
};
单击按钮时没有任何反应,浏览器控制台上没有错误。当我刷新页面时,我只得到一个错误,它说“Uncaught TypeError: can't access 属性 "onClick", buttons[i] is undefined”。我认为那是因为我刷新页面时没有按钮。有什么建议吗?
那么这个新的列表按钮应该如何知道必须做什么?你必须通过附加一个 eventListener 或创建一个 onclick 处理程序来告诉他。
我正在尝试使用纯 javascript 创建单页待办事项应用程序。页面上有一个按钮,它从文本框中获取文本值并创建一个具有该输入值的按钮。我想做的是将用户动态创建的按钮文本值传递给另一个元素,例如 h2 元素。这里有截图来解释我的意思;
键入列表名称并单击“创建列表”按钮;
使用输入的文本值创建了一个按钮。现在,当您单击 List 1 按钮时,该按钮的文本值“List 1”应该传递给右侧的 h2 元素;
到目前为止,这是我的代码;
<div class="container" id="table-and-list-names">
<div class="row">
<div class="col-3">
<ul class="nav flex-column" id="list-names">
<!--Names of Lists created by user will be here-->
</ul>
</div>
<!--TABLE-->
<div class="col-9">
<h2 id="current-list-name">Select Todo List</h2>
//...
创建按钮;
export function createButton(listName) {
const listOfLists = document.querySelector('#list-names');
const newList = document.createElement('li');
const newListButton = document.createElement('button');
newListButton.classList.add("btn", "btn-sm", "btn-outline-primary", "created-list");
newListButton.innerText = listName;
newList.appendChild(newListButton);
listOfLists.appendChild(newList);
}
我尝试使用此代码传递文本值,但没有成功;
const currListName = document.querySelector('#current-list-name');
var buttons = document.getElementsByClassName('.created-list');
var buttonCount = buttons.length;
for (var i = 0; i <= length; ++i)
buttons[i].onClick = function(e) {
currListName.textContent = buttons[i].textContent;
};
单击按钮时没有任何反应,浏览器控制台上没有错误。当我刷新页面时,我只得到一个错误,它说“Uncaught TypeError: can't access 属性 "onClick", buttons[i] is undefined”。我认为那是因为我刷新页面时没有按钮。有什么建议吗?
那么这个新的列表按钮应该如何知道必须做什么?你必须通过附加一个 eventListener 或创建一个 onclick 处理程序来告诉他。