jqueryajax响应带html标记
我有一个javascript/jquery函数,它应该用同一行的编辑模式版本替换表中的一行。它在行上按钮的onclick事件中激发,代码的简化验证将是:jqueryajax响应带html标记,html,ajax,tags,response,strip,Html,Ajax,Tags,Response,Strip,我有一个javascript/jquery函数,它应该用同一行的编辑模式版本替换表中的一行。它在行上按钮的onclick事件中激发,代码的简化验证将是: function EditRow(itemID) { editable_row = getUrl('row.php?action=' + 'edit' + '&itemID=' + itemID ); $('[row_itemID=' + itemID + ']').html(editable_row); } …row_i
function EditRow(itemID) {
editable_row = getUrl('row.php?action=' + 'edit' + '&itemID=' + itemID );
$('[row_itemID=' + itemID + ']').html(editable_row);
}
…row_itemID是该行的TR标记的属性。。。如[tr row_itemID=27]
function getUrl(addr) {
var r = $.ajax({ type: 'GET', url: addr, async: false, dataType: "text" }).responseText; return r;
}
我也尝试过将dataType:设置为“html”或完全忽略它
php应该返回该行内容的编辑模式版本,但是由于某种原因,TD标记在这个过程中似乎被剥离了,可能$.ajax函数认为响应包含TD,而TR无效
row.php?action=edit&itemID=27的视图源显示TD,alerteditable_row;,但是警报$'[row_itemID=27]'.html;没有
row.php代码的简化版本:
<?php
if ($_GET['action'] == 'edit') {
$item = ItemDataAccess::Read($_GET['itemID']);
?>
<td><input type="text" name="itemID" value="<?php echo $item->itemID ?>" /></td>
<td><input type="text" name="name" value="<?php echo $item->name ?>" /></td>
<td><input type="text" name="description" value="<?php echo $item->description ?>" /></td>
<?php
}
?>
现在有人知道如何让它在TR标记中插入一个纯html响应了吗?您真的编写了一个关于$.ajax的包装器吗?你错过了吗?还有,您使用async:false而不是回调,为什么
function EditRow(itemID) {
$('[row_itemID=' + itemID + ']').load('row.php?action=' + 'edit' + '&itemID=' + itemID);
}
就这样。包装纸是别人写的;尽管如此,我还是尝试了get和load两种方法,但两种方法似乎都能去除TR。还有什么想法吗?等一下。少了什么-s还是s?我在PHP中没有看到任何输出s的东西,只有s是正确的。。。调用页面已经有TR,其中加载的TD将被插入其中。TD在插入到TRU过程中丢失,$'[row_itemID='+itemID+']'长度是多少?如果为零,则页面上根本不存在此类元素,因此需要先创建一个;在将HTML片段插入文档之前,不会显示任何内容。这是因为$'[row_itemID=27]'搜索文档-它不会神奇地知道如何搜索HTML片段。啊,好的,谢谢。我认为这是我的观点,当插入文档时,TD标签会丢失