2013-10-07 57 views
0

我困在我的小jQuery腳本中。 我想爲特定表格的行製作複選框。 這將是一個grepmonkey腳本,所以我不能編輯網站的來源。jQuery - 在特定表格中添加複選框

這是HTML的設置方式:

<html> 
    <head></head> 
    <body> 
    <table class = test1></table> 
    <table class = test2></table> 
    <table class = goal> 
     <thead> 
     some some <tr> 
     </thead> 
     <tbody> 
     here are the table rows where I want to put the checkboxes 
     </tbody> 
    </table> 
    </body> 
</html> 

的問題是,在把複選框中的每行「TR」它可以在所有的表中找到。 最後我的代碼:

var $ = unsafeWindow.jQuery 

$(document).ready(function(){ 
    $("table.goal").ready(function(){ 
    $("tbody").ready(function(){ 
     $("tr").prepend('<td><input type="checkbox" name="x" value="y"></td>'); 
    }); 
    }); 
}); 

請,有人會這麼好心給我解釋一下,這是爲什麼不發揮預期? 在此先感謝。

回答

1

沒有必要使用table.ready/tbody.ready,你必須使用descendant-selector

$(document).ready(function() { 
    $("table.goal tbody tr").prepend('<td><input type="checkbox" name="x" value="y"></td>'); 
}); 

演示:Fiddle

注意:如果行是動態創建的,那麼DOM操作需要執行的TR的創建

+0

謝謝。 :)我堅持了2個小時。 –

0

試試這個之後,

$(document).ready(function(){ 
    $("table.goal tbody tr").each(function(){ 
     //check if a checkbox is already added or not 
     if($(this).find('td:eq(0) > input[type="checkbox"]').length) 
     { 
      $(this).prepend('<td><input type="checkbox" name="x" value="y"></td>'); 
     } 
    }) 
}); 
0

試試

$("tbody tr").prepend('<td><input type="checkbox" name="x" value="y"></td>'); 

它應該省略thead。

0
Hope this might help you... :) 

    $(.goal tr).prepend('<td><input type="checkbox" name="x" value="y"></td>'); 
0
function AddCheckboxToTable($table) { 
    var $thead = $table.find('> thead'); 
    var $tbody = $table.find('> tbody'); 

    $thead.find('> tr').prepend('<th>Checkbox</th>'); 
    $tbody.find('> tr').each(function(index, element) { 
     var $tr = $(element); 
     $tr.prepend('<td><input type="checkbox" name="checkbox" value="'+index+'"> </td>'); 
    }); 
}; 

$(function() { 
    AddCheckboxToTable($('table.goal')); 
}); 

看到這個小提琴:http://jsfiddle.net/dYAkJ/

相關問題