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ます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 に答える