我的onclick不能正常工作

时间:2014-09-22 16:21:36

标签: javascript php

我有这个功能

<?php
for($i = 1; $i <=9; $i++){
print("<div id='cover'>");
for ( $j = 1; $j <= 9; $j++){
    if($i % $j == 8 || $i < $j || $i == $j){
        print("<div class='colors' onClick='hello($i, $j)'>");
    } else {
        print("<div class='pinks' onClick='hello($i, $j)'>");
    }
    print($i ."+". $j ." ");
    print("</div>");
}
print("</div>");

}
?>

会产生一堆带数字的div。我希望能够点击它,并显示添加两个数字的结果。 我有这个

的JavaScript函数
function hello(r, t)
{
     $("div.colors, div.pinks").html(r+t);
}

但我不知道如何只获得我点击的div。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

假设您只想计算用户点击的元素,那么该方法应该更像这样:

function calc(element, r, t)
{
    element.innerHTML = r+t
}

虽然方法调用ofc将是:

<div><a href="#" onclick="calc(this,3,2);">3+2</a></div>

例如,请看这个小提琴。

http://jsfiddle.net/m9wkr0vz/


为了允许更复杂的计算而不为每个组合提供方法,您可以使用javascripts能力来评估给定的表达式:

function calc(element)
{
    element.innerHTML = eval(element.innerHTML);
}

<div><a href="#" onclick="calc(this);">(7+1)/(2+2)</a></div>

看到这个小提琴:http://jsfiddle.net/u20bgx83/