无法在javascript中获取子元素的文本
我正在尝试制作一个库管理系统,它的一个功能是编辑任何记录,问题是用户编辑并保存记录后,该记录应在html表中更新。目前,每个记录有4个输入:书名、作者、收件人和发行日期。u更新后,除作者姓名外的所有记录都将更新。作者名称与最初输入的名称相同,不会更改。如果有任何帮助,我将不胜感激 下面是编辑按钮及其事件侦听器的Javascript代码:无法在javascript中获取子元素的文本,javascript,html,dom,Javascript,Html,Dom,我正在尝试制作一个库管理系统,它的一个功能是编辑任何记录,问题是用户编辑并保存记录后,该记录应在html表中更新。目前,每个记录有4个输入:书名、作者、收件人和发行日期。u更新后,除作者姓名外的所有记录都将更新。作者名称与最初输入的名称相同,不会更改。如果有任何帮助,我将不胜感激 下面是编辑按钮及其事件侦听器的Javascript代码: let item1 = document.createElement('td'); let item2 = document.createElement
let item1 = document.createElement('td');
let item2 = document.createElement('td');
let item3 = document.createElement('td');
let item4 = document.createElement('td');
let item5 = document.createElement('td');
let item6 = document.createElement('td');
let btnRemove = document.createElement('button');
let btnEdit = document.createElement('button');
item1.innerHTML = bookTitle;
item2.innerHTML = author;
item3.innerHTML = recipient;
item4.innerHTML = dateIssued;
btnRemove.className = 'btn btn-outline-danger btn-remove';
btnRemove.textContent = 'X';
btnEdit.className = 'btn btn-outline-success btn-edit';
btnEdit.textContent = 'Edit';
itemRow.appendChild(item1);
itemRow.appendChild(item2);
itemRow.appendChild(item3);
itemRow.appendChild(item4);
item6.appendChild(btnEdit);
item5.appendChild(btnRemove);
itemRow.appendChild(item6);
itemRow.appendChild(item5);
list.appendChild(itemRow);
//restting the form
form.reset();
btnEdit.addEventListener('click', (e)=>{
console.log('success');
msgArea.className = 'alert alert-info';
msgArea.textContent = 'Edit the fields'
setTimeout(()=>msgArea.remove(), 3000);
document.querySelector('#title').value = bookTitle;
document.querySelector('#author').value = author;
document.querySelector('#recipient').value = recipient;
document.querySelector('#date-issued').value = dateIssued;
submitBtn.style.display = 'none';
let saveEditBtn = document.createElement('button')
saveEditBtn.className = 'btn btn-dark'
saveEditBtn.textContent = 'Save';
document.querySelector('.btns').appendChild(saveEditBtn);
saveEditBtn.addEventListener('click', (e)=>{
let newTitle = document.querySelector('#title').value;
let newAuthor = document.querySelector('#author').value;
let newRecipient = document.querySelector('#recipient').value;
let newDate = document.querySelector('#date-issued').value;
form.reset();
saveEditBtn.style.display = 'none';
submitBtn.style.display = 'block';
console.log(btnEdit.parentElement.parentElement.children[1].textContent)
btnEdit.parentElement.parentElement.children[0].textContent = newTitle;
btnEdit.parentElement.parentElement.children[1].textConent = newAuthor;//HERE IS THE PROBLEM
btnEdit.parentElement.parentElement.children[2].textContent = newRecipient;
btnEdit.parentElement.parentElement.children[3].textContent = newDate;
});
});
以下是问题的图像:
之前
更新期间
更新后(此处作者姓名不更新,其余则更新)
问题就在这里
btnEdit.parentElement.parentElement.children[1].textConent = newAuthor; //HERE IS THE PROBLEM
问题在于文本内容的拼写,您忘记在内容中添加“t”
btnEdit.parentElement.parentElement.children[1].textContent = newAuthor; //HERE IS THE SOLUTION
注意:-存在导致错误的拼写错误,代码中没有其他错误。innerText或innerHTML;此处不需要textConect。若要添加元素的querySelector,将不起作用。你要的是一个有头衔的身份证,根本没有这回事。但有趣的是,您已经在顶部定义了每个元素,以便可以引用它们,或者调用“tr>th”@n个子元素或循环it@blanknamefornow谢谢innerHTML起作用了,但我很好奇为什么textContent不能仅在该字段中起作用?您没有正确使用选择,它会出现,并且通过某种查询,它可以起作用。但是,是的,修复你的选择器,下面是答案。