0

テーブルの行をクリックしたときに新しいページを開くために使用するJavaScriptがあります。

//for clicking on a row in tabs and opening new page
function addOnclickToTabsDatatableRows() {
    //gets all the generated rows in the html table
    var trs = document.getElementById('formname:dataTable').getElementsByTagName('tbody')[0]
    .getElementsByTagName('tr');
    //on every row, add onclick function (this is what you're looking for)
    for (var i = 0; trs.length > i; i++) {
        var cells = trs[i].cells;                    
        for(var j=1; j < cells.length; j++){
            cells[j].onclick = new Function("rowOnclick(this.parentElement)");
        }                    
    }
}

解決できない問題に気づきました。このJSスクリプトをいくつかのページに適用します。すべてのページに、異なるIDを持つ異なるフォームがあります。このJSを使用する場合は、idを持つすべてのフォームが必要formnameです。IDが何であっても、このJSをすべてのフォームに適用するにはどうすればよいですか?使用できる標準的なアプローチはありますか?

4

2 に答える 2

3

の代わりにdocument.getElementById('formname:dataTable')、単に使用しますdocument.getElementsByTagName("form")

于 2012-10-13T18:03:44.057 に答える
2

次のように、ページ内のすべてのフォームを反復処理します。

for(var i=0;i<document.forms.length;i++) {
    var trs = document.forms[i].getElementsByTagName('tbody')[0]
    .getElementsByTagName('tr');
    // rest of your code..
}
于 2012-10-13T18:03:27.287 に答える