如何获得文字宽度?

时间:2011-11-06 15:48:45

标签: jquery

我有以下情况。

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

我使用以下jquery来获取文本内容和宽度......

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

如何获取文本宽度以及获取其索引和文本数据?

2 个答案:

答案 0 :(得分:2)

一些事情:

  1. 您可以将每个功能更改为包括indexvalue。然后,您可以获得li的索引而无需额外的jQuery调用。
  2. .text()调用将文本作为字符串返回,字符串上没有.width()方法。
  3. 我认为你真正想要的是span的宽度,而不是文字。
  4. 试试这个:

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

答案 1 :(得分:1)

.text()返回一个字符串(元素的文本内容)。

如果width表示length(字符数),请使用

$text.length

要使元素width使用

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

你想获得什么指数?从UL里面的LI?然后使用

$(this).index()

jQuery docs: