如何在函数[onClick]中的表中添加新行,并从除新的行之外的所有行中删除此属性

时间:2012-11-15 23:26:41

标签: javascript jquery html dom

我编写了一个代码,添加了一个新行,并在我点击表格中的现有行时删除了(onClick)属性

<table style="vertical-align:middle;margin:20px;" id="table_insert">
 <tr  id="tra" >
  <td >Word :</td><td onClick="insert_tr()"> <input type="text" id='word_text' ></input></td>
  <td>Definition :</td><td><input type="text" id='def_text' ></input></td>
 </tr>
</table>

这是添加新行的功能,从前一个删除onclick attr并将其添加到新添加的行中:

<script type="text/javascript">
function insert_tr(){
     $(this).removeAttr('onClick'); //jQuery inside javascript function
     console.log("text:"+$(this).find('td').attr('onClick') ); 
        $('#table_insert').append('<tr onClick="insert_tr()"><td>Word :</td><td > <input type="text" id="word_text" ></input></td><td>Definition :</td><td><input type="text" id="def_text" ></input></td></tr>');
}
</script>

但它不起作用,在控制台屏幕上,它打印[text:undefined] ..我该如何修复它?!!

1 个答案:

答案 0 :(得分:1)

$(this) - 这是窗口对象,而不是您期望的元素

this传递给函数

onClick="insert_tr(this)"

/

function insert_tr(elem){
     $(elem).removeAttr('onClick'); //jQuery inside javascript function
     // Your code here
}