jQuery HTML字符串已更改,未经任何修改

时间:2012-08-17 13:27:05

标签: jquery html

我的动态创建的HTML字符串存在问题。

该代码正在循环执行。

首先,我进入else代码块。

在第二个循环的迭代中,我得到了if(found.length > 0) {}代码块的insode,在第一行中我看到返回的HTML没有关闭输入的斜杠/。为什么?

var newHtml = $('');

if(file.updateWithId !== 0) {
   var found = $(newHtml).find('input.del-file-cb[file-id="' + file.updateWithId + '"]');

   if(found.length > 0) {
       var replaceValue = found.parent().parent().html(); //here I see changed HTML
       found.parent().parent().find('label.label-none:eq(0)').text(file.name);
       found.parent().parent().find('label.label-none:eq(1)').text(file.type);
       rowsAppends = rowsAppends.replace(replaceValue, $(newHtml).html());
       newHtml = $(rowsAppends);
   }
 } else {
     rowsAppends += '<tr><td class="text-left"><label class="label-none">' + file.name + '</label></td><td><label class="label-none">' + file.type + '</label></td><td><input class="del-file-cb" file-id="' + file.file_id + '" type="checkbox" /></td></tr>';
     newHtml = $(rowsAppends);
 } 

1 个答案:

答案 0 :(得分:4)

html()方法的输出取决于浏览器,并且可能并不总是与原始源匹配。 jQuery docs说:

  

此方法使用浏览器的innerHTML属性。有些浏览器可能   不返回完全复制原始HTML源的HTML   文献。例如,Internet Explorer有时会离开   如果属性值仅包含字母数字,则引用它们   字符。

例如,at least one report Internet Explorer会从{_ 1}}等自动关闭标记中删除斜杠。你可能无能为力。