1

動的テーブルを作成しました。作成したオブジェクトの 1 つに JavaScript でアクセスしたいと考えています。例: 動的に作成されたボタンのアドレスを指定するにはどうすればよいですか?

<script type="text/javascript">
function myJavaScriptFunction()
{ 
 //How do I know here which button triggered the function?
}
</script>

<table>
<% for (var i=0; i<10; i++) { %> 
  <tr class="rowcell">
   <td class="datacell">
   <input type="button" id='<%="button-no-"+i%>' value="myButton" onclick="myJavaScriptFunction()"/>
   </td>
 </tr>
<% } %>
</table>

前もってありがとう/ジョン

4

6 に答える 6

1

ボタン要素をパラメーターとして関数に渡します

<script type="text/javascript">
function myJavaScriptFunction(button)
{ 
 //button triggered the function
}
</script>

<table>
<% for (var i=0; i<10; i++) { %> 
  <tr class="rowcell">
   <td class="datacell">
   <input type="button" id='<%="button-no-"+i%>' value="myButton" onclick="myJavaScriptFunction(this)"/>
   </td>
 </tr>
<% } %>
</table>
于 2012-10-08T07:52:29.940 に答える
1

パラメータをオブジェクトとしてマップします。

function myJavaScriptFunction(object)
{ 
 //How do I know here which button triggered the function?
    var id = object.id;
}

HTMLで、次のことを行う必要があります。

onclick="myJavaScriptFunction(this)"

これは、関数を呼び出し、thisキーワードを引数として渡すポイントです。

キーワードthisは、呼び出しを行ったHTML要素、つまりクリックしたボタンを参照します。オブジェクトにはid、関数でとして定義した属性がありますobject.id。属性の値は、id基本的に入力タグの「id」フィールドです。

すべてをまとめると、次のようになります。

<script type="text/javascript">
function myJavaScriptFunction(object) // You're defining the function as having a parameter that it accepts. In this case, it accepts an object.
{ 
   alert(object.id); // Alert the object's id.
   // Do what you want with object.id
}
</script>

<table>
<% for (var i=0; i<10; i++) { %> 
  <tr class="rowcell">
   <td class="datacell">
   <input type="button" id='<%="button-no-"+i%>' value="myButton" onclick="myJavaScriptFunction(this)"/>
   </td>
 </tr>
<% } %>
</table>
于 2012-10-08T07:53:07.450 に答える
1
<script type="text/javascript">
function myJavaScriptFunction(button)
{ 
   alert($(button).attr('id')); // gets the id of the button that called the function
}
</script>

<table>
<% for (var i=0; i<10; i++) { %> 
  <tr class="rowcell">
   <td class="datacell">
   <input type="button" id='<%="button-no-"+i%>' value="myButton" onclick="myJavaScriptFunction(this)"/>
   </td>
 </tr>
<% } %>
</table>
于 2012-10-08T07:54:52.783 に答える
0

javascriptでは、このように

var elem = document.getElementById("button-no-1");
于 2012-10-08T07:52:16.950 に答える
0

次のようにコードを変更できます。

<input type="button" id='<%="button-no-"+i%>' value="myButton" onclick="myJavaScriptFunction('<%="button-no-"+i%>')"/>



<script type="text/javascript">
function myJavaScriptFunction(buttonId)
{ 
 //How do I know here which button triggered the function?
}
</script>
于 2012-10-08T07:52:54.637 に答える
0

ボタンIDを知っておく必要があります。

var button = document.getElementById("button-no-1");
于 2012-10-08T07:53:30.070 に答える