2016-11-08 5 views
-3

私はリストタグを動的にインデントしようとしています。なぜなら、CSSでそれを行うのは面倒なので、代わりにjQueryで行うことができると思います。jQueryのliタグの動的インデント

これはどのように達成できますか?

私はこの大きなul liネストされたタグを持っているとそれだけで単一ul liタグであり得るが、このHTMLをインデントしようとしています。

<ul> 
    <li><p>lorem ipsum dolor</p></li> 
    <li><p>lorem ipsum dolor</p>/li> 
</ul> 

それとも

<div id="student"> 
    <h3>Names</h3> 
    <li> 
    <p>lorem ipsum dolor</p> 
</li> 
<li> 
    <p>lorem ipsum dolor</p> 

    <ul> 
     <li> 
      <p>lorem ipsum dolor</p> 
     </li> 
     <li> 
      <p>lorem ipsum dolor</p> 
     </li> 
     <li> 
      <p>lorem ipsum dolor</p> 
     </li> 
     <li> 
      <p>lorem ipsum dolor</p> 
      <ul> 
       <li> 
        <p>lorem ipsum dolor</p> 
       </li> 
       <li> 
        <p>lorem ipsum dolor</p> 
       </li> 
       <li> 
        <p>lorem ipsum dolor</p> 
        <ul> 
         <li> 
          <p>skjut in mig!</p> 
         </li> 
         <li> 
          <p>skjut in mig!</p> 
         </li> 
         <li> 
          <p>skjut in mig!</p> 
          <ul> 
           <li> 
            <p>mmm dolor</p> 
           </li> 
           <li> 
            <p>mmm ipsum dolor</p> 
           </li> 
          </ul> 
         </li> 
         <li> 
          <p>skjut in mig!</p> 
         </li> 
         <li> 
          <p>skjut in mig!</p> 
         </li> 
        </ul> 
       </li> 
       <li> 
        <p>lorem ipsum dolor</p> 
       </li> 
       <li> 
        <p>lorem ipsum dolor</p> 
       </li> 
      </ul> 
     </li> 
     <li> 
      <p>lorem ipsum dolor</p> 
     </li> 
     <li> 
      <p>lorem ipsum dolor</p> 
     </li> 
     <li> 
      <p>lorem ipsum dolor</p> 
     </li> 
     <li> 
      <p>lorem ipsum dolor</p> 
     </li> 
     <li> 
      <p>lorem ipsum dolor</p> 
     </li> 
    </ul> 
</li> 
<li> 
    <p>lorem ipsum dolor</p> 
</li> 
<li> 
    <p>lorem ipsum dolor</p> 
</li> 
<li> 
    <p>lorem ipsum dolor</p> 
</li> 
<li> 
    <p>lorem ipsum dolor</p> 
</li> 
<li> 
    <p>lorem ipsum dolor</p> 
</li> 
</div> 

のjQuery:

$("li").each(function() { 
    $(this).css("padding-left": 20); 
}); 

Demo

+4

CSSでこれをしない理由を説明できますか? – Dekel

+2

cssの難しい部分https://plnkr.co/edit/LKfT7D3QdH91hJPN4hxj?p=preview ... – DaniP

+0

静的な値ではないので、 'li'はajaxの呼び出しとデータからくるデータをラップするだけです大きいことができます。 – nCore

答えて

6

あなたがしたいすべてのjqueryのを使用する必要、という点でインデントすべてがのliタグにいない場合は、あなたはかなり簡単にCSSを介してそれらをすべてインデントすることができます。

li { 
padding-left: 20px; 
} 
+0

ここから私から投票を得ました:) CSSはjqueryではなく、正しい解決策です。 – Dekel

3

コードの特定の問題は構文エラーです。

チャンスこの:これに

$(this).css("padding-left": 20); 

$(this).css("padding-left", 20); 

それとも

$(this).css({"padding-left": 20}); 

しかし、私は本当にjQueryのソリューションがここにあるとは思いません。 CSSを使用する必要があります(@borbesaurの答えを確認してください)。

+0

フェアありがとう:)ええ、CSSとの間違った推測。 – nCore

+1

私からの投票もありました。お互いに褒めてくれるのは良いことです。 – borbesaur