2012-06-01 62 views
1
<table border="2"> 
    <tr><td>one</td><td>two</td></tr> 
    <tr><td>one</td><td>two</td></tr> 
    <tr><td colspan="2" id="new" >add new</td></tr> 
</table> 

$('#new').click(function(){ 
    $('#new').append("<tr><td>one</td><td>two</td></tr>"); 
}) 

如果我現在點擊 「新增」,那麼本作:如何追加或其他解決方案?

one | two 
one | two 
add new 
one two 

我怎樣才能讓:

one | two 
one | two 
one | two 
add new 

LIVE:http://jsfiddle.net/tg5qD/

+3

'$( '#新')。父()。以前( 「...」)' – Esailija

+0

@Esailija如果您將粘貼這個作爲答案我會投票給你嗎?繼續bruv B-) –

+0

@Esailija請添加新的答案 –

回答

1

您可以修改JavaScript代碼採用以下方式:

$('#new').click(function(){ 
    $('#new').parent().before("<tr><td>one</td><td>two</td></tr>"); 
}) 

或修改您的HTML以使用該腳本。

<table border="2"> 
    <tr><td>one</td><td>two</td></tr> 
    <tr><td>one</td><td>two</td></tr> 
    <tr id="new"><td colspan="2" >add new</td></tr> 
</table> 
<script> 
    $('#new').click(function(){ 
    $('#new').before("<tr><td>one</td><td>two</td></tr>"); 
    }); 
</script> 

第二個解決方案將單擊處理程序附加到行而不是單元格。這樣你可以很容易地使用beforejQuery docu)。

2
$('#new').click(function(){ 
    $('#new').parent('tr').before("<tr><td>one</td><td>two</td></tr>"); 
})​ 

Demo

1

我真的引用點擊事件中使用$(this)的新建按鈕。保存你再次在DOM中找到元素。

$('#new').click(function(){ 
    $(this).parent().before("<tr><td>one</td><td>two</td></tr>"); 
}) 

更妙的是,如果你使用.on事件對象您可以靈活地在稍後一點,如果你想關閉這個點擊事件。

$('#new').on({ 
    "click.addNew": function(){ 
     $(this).parent().before("<tr><td>one</td><td>two</td></tr>"); 
    } 
}) 

JS小提琴:http://jsfiddle.net/tg5qD/11/

1

您可以使用下面的方法..首先需要找到id爲'new'的父母tr。那麼我們可以將我們的新元素附加到父元素之前。

$('#new').click(function(){ 
    $(this).parent('tr').before("<tr><td>one</td><td>two</td></tr>"); 
})​ 
相關問題