jquery
2013-06-24 173 views 1 likes 
1

嗨網絡好人,我有一個問題與下面的腳本。對象不支持此屬性或方法問題與IE 8

我繼續在方法.length上收到object doesn't support this property or method問題。有任何想法嗎 ?

THX 周杰倫

$('input:hidden').each(function(){ 
    var name = $(this).attr('name'); 
    if($("[name='"+name+"']").length >1){ 
     if($(this).attr('type')!=='radio' && $(this).attr('type')!=='submit' 
              && $(this).attr('type')!=='button' 
              && $(this).attr('type')!=='text' 
              && $(this).attr('type')!=='checkbox' 
              && $(this).attr('type')!=='select'){ 
      $(this).remove(); 
     } 
    } 
}); 
+1

怎能同一個類型,是不是'hidden'一個隱藏的輸入? – xdazz

+0

.length應該可以運行http://jsfiddle.net/balintbako/cjvDG/ 你可以發佈html嗎? –

+1

請解釋代碼的原因。如果您試圖刪除所有隱藏的字段,那麼爲什麼要測試attr?正如@xdazz所說,你只有在每個隱藏的領域。 – mplungjan

回答

0

嘗試使用size()代替length

$("[name='"+name+"']").size() 
+0

我確實使用size(),同樣的問題。 – Joseph

+0

此外,我還有一個問題,這個下面的函數,我得到一個無法完成,由於操作錯誤80020101. 功能loadPreviousPage(){ \t的document.getElementById(「formHeader」)scrollIntoView()。 \t razInfosErreur(); \t $(「body」)。trigger('Loading.Start'); \t \t的setTimeout(函數(){ \t //調用操作這裏 \t嘗試{ \t \t \t VAR頁= parseInt函數($( 「#輸入當前是」)VAL()); \t \t \t VAR phpNextPage =頁面-1; \t \t \t loadPage(phpNextPage); \t} \t最後{ \t $( 「正文」)觸發器( 'Loading.End'); \t} \t},50); \t \t } – Joseph

0

你真的需要修復重複的根本問題,而不是黑客所產生的誤差。

這就是說:雖然的Internet Explorer(8至少)不會對單個輸入字段的長度屬性,jQuery的1.10 IE8將兩個。長度和.size(返回1),所以你需要給我們更多的信息,並顯示一些HTML

<!DOCTYPE html> 
<html> 
<head> 
<title>Test length</title> 
<script src="http://code.jquery.com/jquery-1.10.0.min.js"></script> 
<script> 
$(function(){ 
    $.each(["test1","test2"],function(i,name) { 
     var input = $("input[name="+name+"]"); 
     var dotlength = input.length; 
     var size = input.size(); 
     window.console && console.log("input.length:",dotlength); 
     window.console && console.log("input.size():",size); 
    }); 
}); 
</script> 
</head> 
<body> 
<input name="test1" /><hr> 
<input name="test2" /><br><input name="test2" /><br> 
</body> 
</html> 

給出了IE:

LOG: input.length:1 
LOG: input.size():1 
LOG: input.length:2 
LOG: input.size():2 
+2

'length'是一個jQuery對象的屬性,所以它不應該的問題,瀏覽器是什麼。 – Archer

+0

'if(fields.length)'足夠代替if(fields.length && fields.length> 1)'。 –

+0

啊 - !如果field.length = null是什麼我其實是 – mplungjan

0

不要求檢查的事情,做一個嘗試用下面的代碼:

$(document).ready(function() { 
    $('input:hidden').each(function(){ 
     var name = $(this).attr('name'); 
     $("[name='" + name + "']").slice(1).remove(); 
    }); 
}); 
+0

你爲什麼要用slice()?這是一個字符串不是數組! – Joseph

+0

嘿它的jQuery切片 - http://api.jquery.com/slice/ –

0

既然你說你很新。你可以使用任何插件,下面爲您的多形式,這樣就可以避免Browser compatibility issues,使你的代碼乾淨

http://mstratman.github.io/jQuery-Smart-Wizard/
http://wbotelhos.com/stepy
http://thecodemine.org/

相關問題