onclick 在 table 行 [javascript] 中不起作用
onclick is not working in the table row [javascript]
我是新来的javascript
在此代码中,我将 json 数据打印到 table 中,但不是整个数据 bookName
。
所以我的问题是,当我尝试点击书名时,例如 The Night Fire、Murder、The Death Higgler 等。它不起作用
所以我不知道这样写 onclick
是对还是错,因为我是 javascript 的新手,可能这就是为什么我点击该列的数据
但我希望它是可点击的
任何帮助将不胜感激
let bookDetails = [
{
bookId: "1",
bookName: "The Night Fire",
bookDescription: "description the night fire",
bookAuthor: "Arnold Bennett ",
bookPages: "10",
category: "horror",
price: "120",
year: "2001"
},
{
bookId: "2",
bookName: "Murder",
bookDescription: "description Murder",
bookAuthor: "Arnold Bennett ",
bookPages: "110",
category: "Mystery",
price: "130",
year: "2019"
},
{
bookId: "3",
bookName: "The Death Higgler",
bookDescription: "description the Higgler",
bookAuthor: "Coppard",
bookPages: "80",
category: "horror",
price: "140",
year: "2020"
},
{
bookId: "4",
bookName: "The Open Boat",
bookDescription: "description The Open Boat",
bookAuthor: "Stephen",
bookPages: "30",
category: "Fantasy",
price: "200",
year: "2018"
}]
function toShowTable(bookDetails) {
messageTable(" ");
let table = "<table border = 1 cellpadding = 10 ><th colspan=3 >Book Names</th>"
for (key in bookDetails) {
table += "<tr><td>" + bookDetails[key].bookName + "</td>";
bookDetails[key].bookName.onclick = function () {
console.log("hii");
}
} messageTable(table);
}
function messageTable(variable) {
document.getElementById("messageTable").innerHTML = variable;
}
<!DOCTYPE html>
<html>
<head>
<title>Book Store information C</title>
<script src="add.js"></script>
<style>
th,
td,
p,
input {
font-family: Arial, Helvetica, sans-serif;
}
table,
th,
td {
border: solid 1px #DDD;
border-collapse: collapse;
padding: 10px 10px;
text-align: center;
}
th {
font-weight: bold;
}
</style>
</head>
<body>
<input type="button" value="showTable" onclick="toShowTable(bookDetails)">
<p id="messageTable"></p>
</body>
</html>
你可以这样做
function toShowTable(bookDetails) {
messageTable(" ");
let table = "<table border = 1 cellpadding = 10 ><th colspan=3 >Book Names</th>"
for (key in bookDetails) {
table += "<tr onclick='yourFunction(somevalue)'><td>" + bookDetails[key].bookName + "</td>";
}
messageTable(table);
}
function yourFunction(value) {
// do someting
}
你能试试这个吗?您不需要 messageTable 函数
function toShowTable(bookDetails) {
const messageTable=document.getElementById("messageTable");
messageTable.innerHTML = '';
let table=document.createElement("table");
bookDetails.forEach((item)=>{
let row= table.insertRow(-1);
let cell=row.insertCell(0);
cell.innerHTML=item.bookName;
cell.addEventListener('click',()=>{
alert(item.bookName);
})
})
messageTable.appendChild(table);
}
我是新来的javascript
在此代码中,我将 json 数据打印到 table 中,但不是整个数据 bookName
。
所以我的问题是,当我尝试点击书名时,例如 The Night Fire、Murder、The Death Higgler 等。它不起作用
所以我不知道这样写 onclick
是对还是错,因为我是 javascript 的新手,可能这就是为什么我点击该列的数据
但我希望它是可点击的
任何帮助将不胜感激
let bookDetails = [
{
bookId: "1",
bookName: "The Night Fire",
bookDescription: "description the night fire",
bookAuthor: "Arnold Bennett ",
bookPages: "10",
category: "horror",
price: "120",
year: "2001"
},
{
bookId: "2",
bookName: "Murder",
bookDescription: "description Murder",
bookAuthor: "Arnold Bennett ",
bookPages: "110",
category: "Mystery",
price: "130",
year: "2019"
},
{
bookId: "3",
bookName: "The Death Higgler",
bookDescription: "description the Higgler",
bookAuthor: "Coppard",
bookPages: "80",
category: "horror",
price: "140",
year: "2020"
},
{
bookId: "4",
bookName: "The Open Boat",
bookDescription: "description The Open Boat",
bookAuthor: "Stephen",
bookPages: "30",
category: "Fantasy",
price: "200",
year: "2018"
}]
function toShowTable(bookDetails) {
messageTable(" ");
let table = "<table border = 1 cellpadding = 10 ><th colspan=3 >Book Names</th>"
for (key in bookDetails) {
table += "<tr><td>" + bookDetails[key].bookName + "</td>";
bookDetails[key].bookName.onclick = function () {
console.log("hii");
}
} messageTable(table);
}
function messageTable(variable) {
document.getElementById("messageTable").innerHTML = variable;
}
<!DOCTYPE html>
<html>
<head>
<title>Book Store information C</title>
<script src="add.js"></script>
<style>
th,
td,
p,
input {
font-family: Arial, Helvetica, sans-serif;
}
table,
th,
td {
border: solid 1px #DDD;
border-collapse: collapse;
padding: 10px 10px;
text-align: center;
}
th {
font-weight: bold;
}
</style>
</head>
<body>
<input type="button" value="showTable" onclick="toShowTable(bookDetails)">
<p id="messageTable"></p>
</body>
</html>
你可以这样做
function toShowTable(bookDetails) {
messageTable(" ");
let table = "<table border = 1 cellpadding = 10 ><th colspan=3 >Book Names</th>"
for (key in bookDetails) {
table += "<tr onclick='yourFunction(somevalue)'><td>" + bookDetails[key].bookName + "</td>";
}
messageTable(table);
}
function yourFunction(value) {
// do someting
}
你能试试这个吗?您不需要 messageTable 函数
function toShowTable(bookDetails) {
const messageTable=document.getElementById("messageTable");
messageTable.innerHTML = '';
let table=document.createElement("table");
bookDetails.forEach((item)=>{
let row= table.insertRow(-1);
let cell=row.insertCell(0);
cell.innerHTML=item.bookName;
cell.addEventListener('click',()=>{
alert(item.bookName);
})
})
messageTable.appendChild(table);
}