Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用onclick将多个参数传递给函数_Javascript - Fatal编程技术网

Javascript 使用onclick将多个参数传递给函数

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

我正在制作一个待办事项应用程序。单击编辑按钮时,我希望将项目id和标题发送到editItem函数。我不知道如何使用模板字符串传递参数。当我只发送item.id时,它可以正常工作,但是当我添加第二个参数(item.title)时,我得到一个错误

<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(项=>{
让标记=`
  • ${item.title} 删去 编辑 完成
  • ` 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的问题。