0

这是php代码块...

echo "<td> 
          <input type='checkbox' value='online_$row[0]' " .                                             
          $checked[$row[$i]]. " onchange='background()'/>                                   
      </td>";

这是非常简单的javascript代码...

function background()
{
    alert(this.value); 
}

如何使用 this 关键字获取该复选框的名称?

4

3 回答 3

4
 echo "<td> 
      <input type='checkbox' value='online_$row[0]' " .                                             
      $checked[$row[$i]]. " onchange='background(this)'/>                                   
  </td>";

function background(ele)
{
alert(ele.value); 
}
于 2012-11-01T07:39:31.170 回答
2

this是函数内部的输入onclick……但是该函数background在没有任何上下文的情况下调用,因此它window在该函数内部this获得了 so 的默认上下文window

直接将函数绑定background到输入元素,而不是使用onclick属性创建新函数。

refToInput.addEventListener('change', background);

有关addEventListener 的更多信息,请参阅MDN,包括有关浏览器兼容性的说明。

于 2012-11-01T07:41:19.963 回答
1

在 JS 函数中,您必须传递一个对象,因此“this”将被实际定义。例如,您可以使用:

function background(elem)
{
    alert(elem.value); 
}

一旦函数没有任何参数,“this”就没有定义,因此函数不会作为例外运行。

于 2012-11-01T07:41:32.273 回答