javascript - 通过赋值输出 HTML 元素的值
问题描述
我做了按钮教程和 HTML 选择器教程,但似乎无法让它工作。请不要只给我答案,我要意识到我的错误。
这是我的代码:
目标
目标是获取每个<li>
标签并为其分配一个按钮,将其文本输出到 Javascript 控制台。好像是说,您点击了此按钮,因此您选择了裤子。
JS
list[x].innerHTML += ('<button onClick="console.log('+list[x].innerHTML+');">Select Item</button>');
let storedListValue = [];
let y = 0,
x = 0;
function outputTargetValues() {
let list = document.querySelectorAll("li");
console.log(list.length);
while (x < list.length) {
storedListValue.push(list[x].innerHTML);
console.log(storedListValue[x] + " This is storedListValue Data");
//console.log(list[x].innerHTML);
list[x].innerHTML += ('<button onClick="console.log(' + list[x].innerHTML + ');">Select Item</button>');
//console.log(list[x]);
y++;
x++;
}
}
function output(itemName) {
console.log(itemName);
}
function callMeOutput() {
console.log(y);
return storedListValue[x];
}
<h3>Shirts</h3>
<ul id='list'>
<li id='i1'>Biker Jacket</li>
<li id='i2'>Mens Shirt</li>
</ul>
<button onClick="outputTargetValues();">Test</button>
解决方案
如果要在单击第一个按钮时打印列表元素的文本,则需要更改此行:
list[x].innerHTML += ('<button onClick="console.log(\'' + list[x].innerHTML + '\');">Select Item</button>');
您的代码的问题在于您的结果输出类似于console.log(Mens Shirt)
,这是一个语法错误。使用我现在提供的代码,字符串带有引号,因此没有错误。
let storedListValue = [];
let y = 0,
x = 0;
function outputTargetValues() {
let list = document.querySelectorAll("li");
console.log(list.length);
while (x < list.length) {
storedListValue.push(list[x].innerHTML);
console.log(storedListValue[x] + " This is storedListValue Data");
list[x].innerHTML += ('<button onClick="console.log(\'' + list[x].innerHTML + '\');">Select Item</button>');
y++;
x++;
}
}
function output(itemName) {
console.log(itemName);
}
function callMeOutput() {
console.log(y);
return storedListValue[x];
}
<h3>Shirts</h3>
<ul id='list'>
<li id='i1'>Biker Jacket</li>
<li id='i2'>Mens Shirt</li>
</ul>
<button onClick="outputTargetValues();">Test</button>
我建议您在遇到此类错误时检查您的 HTML 输出,并尝试查看是否有任何语法错误。这可能会对您未来的项目有所帮助:)
推荐阅读
- java - 我应该如何从 Java 中的 2 个不同类继承 1-1 变量?
- r - 通过用户点击地图Leaflet R过滤数据
- javascript - 如何通过 Html 表单对象仅使用一个输入字段上传多个文件
- java - 从 Java 执行 .sh 文件
- sql-server - 使用哪种处理方法
- android - Android JobIntentService 似乎已重新启动
- apache-kafka - Apache Zookeeper 无法读取配置文件,尽管提供了一个
- java - Android Studio 3.1.3 Gradle 同步错误。无法下载 Gradle-Core.jar
- azure - 无法连接到 Azure 存储帐户文件共享
- ios - 如何修复 AppDelegate for Firebase Notifications 中使用的已弃用代码?