使用jQuery动态替换s及其包含的元素

时间:2011-05-18 11:22:32

标签: javascript jquery html

我有一个表格,其中包含用户点击链接时需要替换的表单元素。我们的想法是,如果他们点击按钮,字段会自动填入,然后字段变成html p元素,因为我不希望用户在自动填写后能够编辑这些字段。还有其他字段需要仍然填写的字段。

所以我需要的是当用户点击链接时,4个标记被替换为4个标记,其中包含文本。这似乎不适用于trs。所以我现在在包含输入字段的td上尝试它:

 $('#use_patient_field').click(function(e){
     e.preventDefault();
    $('#patientForm_f_name').html('blah');
    return false;
});

我也尝试覆盖输入字段,也没有任何反应。我需要表仍然存在,但替换输入和选择标签。

5 个答案:

答案 0 :(得分:2)

据我了解您的问题,您希望在单击表格行时动态更改它们的内容。如果您的表格如下:

<table id="grid">
    <tr><td>Row 1</td></tr>
    <tr><td>Row 2</td></tr>
</table>

然后,当您单击它们时,以下实时事件处理程序将更改行中的单元格:

$('#grid tr').live('click', function(event) {
   var row = $(event.target);
   row.html('<td><b>some text</b><td>'); 
   event.preventDefault(); 
})

答案 1 :(得分:1)

我找到了我想要的东西。您可以将输入字段设置为只读,这意味着我不必用p元素替换表单字段。

这是代码,以防任何未来的perosn需要它:

 $('.patient input').attr('readonly','true');

答案 2 :(得分:0)

你不能只在表格中将tr - s替换为p-s。我建议,从表格单元格中提取所有内容(td - s),并用p - s包装它们,将它们放在表格之后,最后删除表格。

答案 3 :(得分:0)

Jquery的.html方法在匹配的元素中添加HTML。您给出的示例将为您提供:

<input id="patientForm_f_name">blah</input>

你想要的是替换匹配的元素。您可以使用.replaceWith方法执行此操作。

尝试:

$('#patientForm_f_name').replaceWith('blah');

答案 4 :(得分:0)

如果您想要替换所有trs,请使用

$( 'TR')HTML( '');

这将删除tr中的所有html。