朋友需要帮助来解决此问题。
(function($){
$('*').each(function(){
if ($(this).children().length == 0) {
$(this).html($(this).html().replace(avidno,'<span id=avidlocal>AvidTrak Tracking Number</span>'));
}
});
})(jQuery)
答案 0 :(得分:1)
由于以下行是给您错误的:
$(this).html($(this).html().replace(avidno,'<span id=avidlocal>AvidTrak Tracking Number</span>'));
你应该将其分解,以便每行只调用一个方法。这将允许您进一步隔离错误。例如:
var obj = $(this);
var currentHTML = obj.html();
var newHTML = currentHTML.replace(avidno,'<span id=avidlocal>AvidTrak Tracking Number</span>');
如果var currentHTML
行是问题,那么$(this)可能由于某种原因未定义。或者你可能需要围绕id名称“avidlocal”的引号。很难说,因为这毕竟是一个IE错误,我没有看到任何具体的,我知道在IE中不起作用。
作为最后一点,我强烈建议你的朋友找到一个更好的方法来实现他的目标。 $('*')。每个将遍历页面上的每个元素。您的朋友真的没有任何方法可以生成HTML,允许更容易替换“avidno”文本,即通过jQuery(通过类/ id)更容易访问,而不是循环遍历所有内容并检查它们是否有子节点?