Javascript 使用onclick将多个参数传递给函数
我正在制作一个待办事项应用程序。单击编辑按钮时,我希望将项目id和标题发送到editItem函数。我不知道如何使用模板字符串传递参数。当我只发送item.id时,它可以正常工作,但是当我添加第二个参数(item.title)时,我得到一个错误Javascript 使用onclick将多个参数传递给函数,javascript,Javascript,我正在制作一个待办事项应用程序。单击编辑按钮时,我希望将项目id和标题发送到editItem函数。我不知道如何使用模板字符串传递参数。当我只发送item.id时,它可以正常工作,但是当我添加第二个参数(item.title)时,我得到一个错误 <button onclick='data.editItem(${item.id}, ${item.title})'class="editItem">Edit</button> 编辑 完整代码 const data = new
<button onclick='data.editItem(${item.id}, ${item.title})'class="editItem">Edit</button>
编辑
完整代码
const data = new State()
data.mockData.map(item => {
let markup =` <li id="${item.id}"className={item.done ? 'done': 'hidden'}> ${item.title}
<button onclick='data.deleteItem(${item.id})'class="deleteItem" >Delete</button>
<button onclick='data.editItem(${item.id}${item.title})'class="editItem">Edit</button>
<button class="completeItem">Complete</button>
</li>
`
document.querySelector('ul').insertAdjacentHTML('beforeend', markup)
const data=新状态()
data.mockData.map(项=>{
让标记=`
`
document.querySelector('ul').insertAdjacentHTML('beforeend',markup)
})我想应该是这样;
我意识到这与您的方法稍有不同,但您是否希望这种方法适用于您
<li id="item1">
Item1 Title
<button id="button1" onclick="handleClick(this.id)" class="editItem">
Edit
</button>
</li>
<script>
function editItem(id, title) {
console.log(id, title)
}
function handleClick(id) {
let clickedButton = document.getElementById(id);
let item1 = clickedButton.parentNode;
editItem(item1.id, item1.firstChild.textContent);
}
</script>
项目1标题
编辑
功能编辑项(id、标题){
console.log(id、标题)
}
函数handleClick(id){
让clickedButton=document.getElementById(id);
让item1=clickedButton.parentNode;
editItem(item1.id,item1.firstChild.textContent);
}
注意:我编辑了上面的代码以进一步满足提问者的需要。您可以尝试使用引号:
<button onclick='data.editItem(${item.id}, "${item.title}")'class="editItem">Edit</button>
编辑
你会犯什么错误?有很多方法可以学到东西。一种方法是尝试自己创建它,但往往失败。这就是你的情况,因为你最终来到了这里。另一种方法是研究其他人的作品,谁知道得更好。在这一点上,也许你想看看这里有几个问题,这些问题将阻止它像你所期望的那样工作。1) 你需要使用反勾号而不是单引号;2) 您需要用双引号封装属性。3) 但这不起作用,因为这里未定义项
。这不能回答OP的问题。