1
<table>
  <tr>
    <td>foo1</td>
    <td>bar1</td>
    <td><input type="button" id="button1" onClick="get(this);"></td>
  </tr>
  <tr>
    <td>foo2</td>
    <td>bar2</td>
    <td><input type="button" id="button2" onClick="get(this);"></td>
  </tr>
</table>

目標:ボタンを取得し、同じボタンが存在する同じものの最初の値を取得する必要がある同じボタンbutton1button2トリガーすること。これは、この場合はそれぞれ:とです。function get()<td><tr>foo1foo2

これは、私が達成しようとしていることを理解するのに役立つはずの関数の大まかな概要です-

function get(element){
  alert(element.tr.first_td.innerHTML);
}

同様の問題に対するjQueryソリューションがあったことを認識しています。しかし、私はjQueryをJavaScriptに戻すのに十分なほどよく理解していません。JavaScriptを使用して可能であれば、その方法を教えてください。

4

3 に答える 3

5

parentNode要素に到達するために2回クロールしtableRowます。そこからtd、セルのHTMLCollectionから最初のセルにアクセスし、innerHTML値を取得します。

function find( element ) {
    alert( element.parentNode.parentNode.cells[0].innerHTML );
}​

フィドル: http: //jsfiddle.net/jonathansampson/WuWnw/

于 2012-06-07T07:09:04.177 に答える
2

これを試してください。タグがたくさんあるのでtrtdDOM解析を実行できます。IDただし、そのテーブルを取得するには、テーブルに1つを指定する必要があります。今のところそれを呼びましょうfoo-table

var table = document.getElementById("foo-table");
var cells = table.getElementsByTagName("td");
for (var i = 0; i < cells.length; i++) {
    alert(cells[i].innerHTML);
}

IDを指定したくなく、テーブルが1つしかないことが確実な場合は、次を使用します。

var table = document.getElementsByTagName("table");
var cells = table[0].getElementsByTagName("td");
for (var i = 0; i < cells.length; i++) {
    alert(cells[i].innerHTML);
}

楽しみ!お役に立てれば!:)いいえjQueryまたは他のプラグイン。純粋なJavaScript。:)

于 2012-06-07T07:12:14.320 に答える
0
<table>
  <tr>
    <td id="button1_value">foo1</td>
    <td>bar1</td>
    <td><input type="button" id="button1" onClick="get('button1_value');"></td>
  </tr>
  <tr>
    <td id="button2_value">foo2</td>
    <td>bar2</td>
    <td><input type="button" id="button2" onClick="get('button2_value');"></td>
  </tr>
</table>

IDを使用して取得したいものを識別し、簡単に取得できるようにする必要があります。これは、誤ったデータを取得する可能性を防ぐのにも役立ちます。コンポーネントにIDを指定すると、document.getElementById()を使用してそのコンポーネントを取得できるようになります。

function get(element){
  var obj = document.getElementById(element)
  alert(obj.innerHTML);
}
于 2012-06-07T07:16:01.317 に答える