使用参数从OnClick调用JS函数

时间:2015-11-07 23:19:34

标签: javascript php html

我正在尝试从多个DIV中的OnClick调用js函数,它传递一个'Section Name'condOther001,002,003等......'。

<?php
$num=mysql_numrows($result);

$i=0;
while ($i < $num) {

$TaskID=sprintf("%03d",mysql_result($result,$i,"TaskID"));
$secOthersID = "SecOther$TaskID";
echo "
<div class='clTaskSection' onclick='SecOtherVisibility($secOthersID)'>...</div>
<div id='$secOthersID' class='clTaskSection'>content...</div>";

$i++;
}

?>

然后它应该调用下面的js,提供相关的部分名称:

<script>
function SecOtherVisibility(divName) {
    if (document.getElementById(divName).style.display = "none") {
      document.getElementById(divName).style.display = "block"
    } else {
      document.getElementById(divName).style.display = "none";
    }
}
</script>

但我得Uncaught TypeError: Cannot read property 'style' of null。我哪里错了?

3 个答案:

答案 0 :(得分:1)

该函数需要一个字符串divName。您传递的变量$secOthersID未定义。你的HTML必须是这样的:

<div class='clTaskSection' id="cats" onclick='SecOtherVisibility("cats")'>Contents of div...</div>

答案 1 :(得分:1)

将其更改为:

<div class='clTaskSection' onclick='SecOtherVisibility(<?= $secOthersID ?>)'>...</div>

除非在PHP上下文中,否则您不能只使用PHP变量。

答案 2 :(得分:1)

更重要的是,查看渲染结果:

... onclick='SecOtherVisibility(SecOther001)' ...

你看到了问题吗?

现在怎么样:

... onclick='SecOtherVisibility(<?=json_encode($secOthersID)?>)' ...

输出:

... onclick='SecOtherVisibility("SecOther001")' ...

我希望能够解决问题!