2013-07-24 5 views
2

내 웹 사이트에서 ul 요소의 너비를 동적으로 설정하는 데 문제가 있습니다. 다음은 잡히지 않은 TypeError : 정의되지 않은 '너비'속성을 설정할 수 없습니다.

는 내가 HTML

<div id="header" class="clearfix"> 
    <div class="clearfix hidden"> 
     <img src="/Content/Images/main-logo.png"> 
    </div> 
    <div id="navbar"> 
     <ul> 
      <li id="home"> 
       home 
      </li> 
      <li id="portfolio"> 
       portfolio 
      </li> 
      <li id="about"> 
       about 
      </li> 
     </ul> 
    </div> 
</div> 

"경고 (버튼)"반환 [개체 개체] 여기

var button = $("#navbar"); 
alert(button); 
var count = $("#header li").length; 
alert(count); 
$("#navbar").style.Width = count * 110 

을 jQuery의 uusing 야한다 그래서 NOT NULL (적어도 나의 이해입니다 그것의) 그러나 나는 그것의 폭을 설정하려고 할 때마다 제목에 언급 된 오류를 얻는다.

누구나 내가 뭘 잘못하고 있는지 알아?

답변

5

$("#navbar") 포함하지 않는, JQuery와 객체 동안 당신은 style는 DOM 요소의 속성입니다

$("#navbar")[0].style.width = count * 110 

또는

$("#navbar").width(count * 110) 

때문에 다음 코드 중 하나를 사용해야합니다 기본적으로 style 속성

+0

그건 고마워요! –

1

style은 DOM 속성이지만 jQuery 개체의 속성은 아닙니다. jQuery를 사용하여 너비를 설정하려면 css getter/setter 또는 width function을 직접 사용하십시오.

$("#navbar").width(count * 110); 
$("#navbar").css('width', (count * 110) + "px"); 
+0

브릴리언트, 감사 톤을 당신은 바닐라 자바 ​​스크립트를 사용하여 폭을 설정하려면! –

1

$("#navbar")을 사용하여 jQuery 요소로 작업하고 있습니다.

$("#navbar")[0].style.width = count * 110 //note that the width property is not capitalized 

또는 jQuery의 width 방법을 사용합니다 :

$("#navbar").width(count * 110); 
관련 문제