javascript - 如何使使用 php 生成的按钮起作用?
问题描述
Btn1 适当地触发 getId 函数,但其他两个 btns 没有,我怎样才能使它们正常工作?我认为下面的代码显示了我想要实现的目标,所以请忽略本段的其余部分。这是在这里,因为在我添加更多详细信息之前,该页面不允许我发布问题。
<?php
$id ="22";
$name = "Joseph";
$btn1 = "<button onclick='getId($id)'>$name $id</button>";
$btn2 = "<button onclick='getId($id,$name)'>$name $id</button>";
$btn3 = "<button onclick='getId($name)'>$name $id</button>";
echo $btn1;
echo "<br>";
echo $btn2;
echo "<br>";
echo $btn3;
?>
<!DOCTYPE html>
<html>
<script>
function getId(x, y) {
alert(x);
alert(y)
console.log(x);
console.log(y);
}
</script>
<body>
"ReferenceError: Joseph is not defined"
</body>
</html>
解决方案
关于将字符串作为参数传递给函数(如上),字符串值需要被引用,否则会出错。在这种情况下,您可以做的不是硬编码参数,而是使用arguments
函数固有的对象并动态访问参数。
<!DOCTYPE html>
<html>
<head>
<title>function arguments and quotes....</title>
</head>
<script>
function getId() {
for( let i=0; i < arguments.length;i++ ){
alert(arguments[i]);
console.info(arguments[i]);
}
}
</script>
<body>
<?php
$id ="22";
$name = "Joseph";
$btn1 = "<button onclick='getId($id)'>$name $id</button>";
$btn2 = "<button onclick='getId($id,\"$name\")'>$name $id</button>";
$btn3 = "<button onclick='getId(\"$name\")'>$name $id</button>";
echo $btn1;
echo "<br>";
echo $btn2;
echo "<br>";
echo $btn3;
?>
</body>
</html>
function getId() {
for( let i=0; i < arguments.length;i++ ){
alert(arguments[i]);
console.info(arguments[i]);
}
}
<button onclick='getId(22)'>Joseph 22</button><br>
<button onclick='getId(22,"Joseph")'>Joseph 22</button><br>
<button onclick='getId("Joseph")'>Joseph 22</button>
推荐阅读
- python - 如何检索列内容?
- python - Python:从父目录或相对路径导入文件
- laravel - 迁移:引用同一个表的两个外键导致错误
- mysql - 我想在明年 4 月以最低价格获得可用房间
- python - 计算 kmeans 算法的核密度估计
- c++ - 优化 CPU 流水线和缓存访问
- oauth-2.0 - 访问令牌和用户 ID
- r - 使用 data.table 模糊连接两个数据帧
- c++ - 为什么在 std::visit 中使用 std::overload 而不是概念/constexpr?
- react-native - 使用提升非反应静态、withApollo、withContext 和 React-Navigation 时出错