2012-12-28 2 views
1
<script type="text/javascript"> 
       $(document).ready(function() { 
      $('#Catid').change(function(){ 
       var optvalue = $(this).val(), 
       div = $('#' + 'parentid' + optvalue); 
       $('div').hide(); 
       div.show(); 
      }); 
     });​ 
       </script> 

임 콘솔 오류가 발생하지만 마지막 줄에 문제를 가지고있는 것처럼이 구문에서 잘못된 점은 무엇입니까?

+1

어떤 오류가 발생합니까? 항상 도움이됩니다. 또한 당신이하려는 것을 공유 할 가치가 있습니다. – JasCav

답변

5

가 보이는 이유는 모른다. 거기에 숨겨진 캐릭터가 있습니다. 삭제하고 다시 작성하십시오.

+0

아, 그래, 실제로 다른 스레드에서 발견 yeh 그게 문제 였어,하지만 당신의 도움을 위해 건배! – user1906005

+0

아, 그럼 내 기쁨이지만, 아마도 문제마다 하나의 스레드에 집중해야합니다. 이런 종류의 유출은 막을 수 있습니다 :) –

+1

그런 것들을 검사하기위한 온라인 도구가 있습니까? 그것을 찾으려면 무엇을 사용 했습니까, 데이빗? – Shomz

2

당신은 "이 문법에 무슨 문제가 있습니까?"라고 물어 보았습니다. 그래서 나는 이것을 지적해야합니다.

문제는 여기 코드입니다 :

div = $('#' + 'parentid' + optvalue); 

사업부는 글로벌 변수이며 나쁜 관행을 고려합니다.

이것을 다시 작성하는 더 좋은 방법은 이것을 초기 var의 일부로 포함시키는 것입니다.

var optvalue = $(this).val(), 
    div  = $('#' + 'parentid' + optvalue); 
+0

아, 그래서이 대신 할 경우 :. $ (문서) .ready를 (함수() { \t \t \t \t \t $ ('#의 CATID')의 변화 (함수() { \t \t \t \t \t \t VAR optvalue = $ (이) .val(); \t \t \t \t \t \t VAR newbit = $ ('#'+ 'parentid'+ optvalue) \t \t \t \t \t \t $ ('NE wbit '). hide(); \t \t \t \t \t \t $ (newbit) .show(); \t \t \t \t \t}); \t \t \t \t}); 더 좋습니까? – user1906005

+0

네, 그게 효과가 있습니다 만, 모든 새로운 변수에 "var"를 사용하는 대신 쉼표로 변수를 추가하는 것이 가장 좋습니다. 그래서 "var x = 1; var y = 5; var z = 10;" "var x = 1, y = 5, z = 10;"과 같습니다. – nolabel

관련 문제