jquery意外调用方法或属性访问即错误

时间:2011-08-08 10:48:05

标签: jquery internet-explorer

朋友需要帮助来解决此问题。

(function($){

   $('*').each(function(){

if ($(this).children().length == 0) { 



          $(this).html($(this).html().replace(avidno,'<span id=avidlocal>AvidTrak Tracking Number</span>')); 

     } 



   });



})(jQuery)

1 个答案:

答案 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)更容易访问,而不是循环遍历所有内容并检查它们是否有子节点?