Javascript 无法将对象作为参数传递
HTML和内联JS代码:Javascript 无法将对象作为参数传递,javascript,html,jquery,arrays,object,Javascript,Html,Jquery,Arrays,Object,HTML和内联JS代码: <a onclick='show(user)'>${user.firstName + " " + user.lastName}</a> ${user.firstName+“”+user.lastName} 在这个show函数中,我传递了一个具有5-6个属性的对象用户,但当我使用调试器时,它并没有将我显示为对象 我也试过了,这是在调试器中将用户显示为对象,但我得到了未捕获的语法错误 <a onclick='show($
<a onclick='show(user)'>${user.firstName + " " + user.lastName}</a>
${user.firstName+“”+user.lastName}
在这个show函数中,我传递了一个具有5-6个属性的对象用户,但当我使用调试器时,它并没有将我显示为对象
我也试过了,这是在调试器中将用户显示为对象,但我得到了未捕获的语法错误
<a onclick='show(${user})'>${user.firstName + " " + user.lastName}</a>
${user.firstName+“”+user.lastName}
我想将其作为对象传递,以便利用其属性
const displayUsers=(用户)=>{
const htmlString=用户
.map((用户)=>{
调试器;
返回`
${user.firstName+“”+user.lastName}
`;
})
.加入(“”);
usersList.innerHTML=htmlString;
日志(用户“列表”)
//console.log(htmlString)
};
功能显示(用户)
{
警报(用户);
console.log(user.aonId);
};代码>如果在json字符串化的按钮中设置数据属性,然后为所有按钮添加一个侦听器,单击“解析数据属性”并访问它,会怎么样
例如:
const displayUsers=(用户)=>{
const htmlString=用户
.map((用户)=>{
返回`
${user.firstName+“”+user.lastName}
`;
})
.加入(“”);
document.getElementById('content')。innerHTML=htmlString;
};
显示用户([{
名字:“乔治”,
姓氏:“迈克尔”
}, {
名字:“布鲁斯”,
姓:“斯普林斯汀”
}]);
const buttons=document.querySelectorAll(“[data user]”);
按钮。forEach(功能(按钮){
按钮。addEventListener(“单击”,函数显示(事件){
log(JSON.parse(event.currentTarget.dataset.user));//当需要使用元素的方法或属性时,应该使用DOM方法创建元素,如
这将使您能够添加事件侦听器、引用值等
下面的示例在users
数组中的每个用户上循环,并在字符串中创建当前的结构。附加事件侦听器,设置文本并生成元素
最后,所有内容都收集到一个实例中,该实例允许您在一次扫描中附加所有创建的用户元素,以提高性能
由于所有节点都一次插入到文档中,因此只会触发一次回流和渲染,而不是单独插入每个节点时可能触发一次
然后将片段附加到usersList
元素中
const displayUsers = (users) => {
const fragment = new DocumentFragment();
users.forEach(user => {
const { firstName, lastName } = user;
const listItem = document.createElement('li');
const anchor = document.createElement('a');
anchor.addEventListener('click', event => show(user, event));
anchor.textContent = `${firstName} ${lastName}`;
listItem.append(anchor);
fragment.append(listItem);
});
usersList.append(fragment);
};
这就是使用HTML字符串的缺点:您无法轻松地将复杂数据序列化到其中。我建议您学习如何创建DOM元素,并使用DOM API绑定事件处理程序。用户是数组还是对象。您可以在数组上使用映射函数。它起作用了。谢谢您单击t这将使未来有同样问题的读者知道正确答案是什么,并给我们假互联网点数作为奖励。