2011-11-06 8 views
0

다음과 같은 상황이 있습니다. 나는 텍스트의 내용과 폭을 얻기 위해 다음과 같은 jQuery를 사용텍스트 폭을 얻는 방법은 무엇입니까?

<ul> 
     <li><span> text </span></li> 
</ul> 

...

$("ul li").each(function() 
    { 
     var textIndex = $(this).index(); 
     var $text = $(this).find("span").text() // this works.. 
     var textWidth = $text.width(); // this does not work.. 
    }); 

어떻게 인덱스 및 텍스트 데이터를 가져 오는와 함께 텍스트 폭을받을 수 있나요?

+0

텍스트가 제로의 인덱스를해야합니다. –

답변

2

몇 가지 :

    다음

    $(this).index() 
    

    jQuery를 워드 프로세서를 사용

  1. indexvalue을 포함하도록 각 기능을 변경할 수 있습니다. 그러면 여분의 jQuery 호출없이 li의 색인을 얻을 수 있습니다.
  2. .text() 호출은 텍스트를 문자열로 반환하지만 문자열에는 .width() 메서드가 없습니다.
  3. 정말 원하는 내용은 텍스트가 아닌 span의 너비입니다.

이 시도 :이 요소 내부의 유일한 노드이기 때문에

$("ul li span").each(function(index,value) 
    { 
     var $value = $(value), 
      textIndex = index, 
      text = $value.text(), 
      textWidth = $value.width(); 
    }); 
+0

설명에 대한 제로와 더 나은 해결책을 고맙다. –

1

.text()은 문자열 (요소의 텍스트 내용)을 반환합니다.

그런 다음 요소 width 사용

$("element-to-get-width-from").width() 

를 얻으려면

$text.length 

를 사용 length (문자 수)를 의미 그리고 당신은 무엇의 인덱스를 얻으려면 width로하면? UL 내부의 LI 에서요?

관련 문제