как получить самую длинную ширину как ширину всех $ ('li') с помощью jquery - PullRequest
2 голосов
/ 18 января 2011
<ul>
  <li>Short</li>
   <li>Short</li>
   <li>Short
    <ul>
       <li>Short</li>
       <li>Longer</li>
       <li>This is the longest (how do i get this longest width as width of all LI siblings with in this UL only)</li>
   <ul>
   </li>
</ul>

Ответы [ 4 ]

8 голосов
/ 18 января 2011

Может быть, вы могли бы использовать offsetWidth уместность. function getMaxLiWidth(){ var maxWidth = 0; $('li').each(function(i){ if(this.offsetWidth > maxWidth) maxWidth = this.offsetWidth; }); return maxWidth; } Если вы хотите вернуть элемент 'li' с самой длинной шириной, вам, вероятно, следует сохранить индекс 'i' в функции, а затем выбрать его, например: $('li:nth-child('+i+')').
быть: function getMaxLiWidth(){ var maxWidth = 0,index=0; $('li').each(function(i){ if(this.offsetWidth > maxWidth) { maxWidth = this.offsetWidth; index = i; } }); return $('li:nth-child('+index+')'); }

0 голосов
/ 05 декабря 2013

Ширина тега li зависит от ul-width, поэтому, если у вас есть дисплей ul: block, li-width вернет ширину ul (100%);

НО выможет получить ширину встроенного элемента внутри тега li.если у вас нет встроенного элемента внутри li: -)

var maxWidth = 0;
//total amount of li-tags
var maxli = $('ul li').length-1;

$('ul li').each(
    function(index){
            //wrap li-content width inline element like <span>
        $(this).wrapInner( "<span></span>");

            //get max-width of spans
        if( $(this).children('span').width() > maxWidth ){
            maxWidth = $(this).children('span').width();
        }

        //complete
        if(index == maxli){
                    //set width of parent ul-tag to max-size of the longest li-tag
            $(this).parent('ul').width(maxWidth);
        }   
    }
);  
0 голосов
/ 18 января 2011

Вы не можете этого сделать, потому что li элементы уровня блока.Это означает, что они автоматически занимают всю ширину родительского элемента. См. Этот jsFiddle, чтобы показать это .

0 голосов
/ 18 января 2011

ul должен обернуться вокруг li и стать шириной самого широкого li, поэтому при взгляде на ширину ul можно добиться цели, если только ul не отображает: block и non-floatet

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...