お世話になります。Jqueryで調べても分からないことがあるので質問します。
$(document).ready(function(){
$("dl dd:last-child").after("<dd/>");
});
と書いているのですが、ddの数が奇数で終わると表示ずれをしてしまうため、
「最後の子要素が 奇数の時だけ」
.after("<dd/>")
としたいのですが、どのように指定したらいいのか分かりません!分かる方、ぜひ教えてください!

A 回答 (4件)

No.3 訂正。


・dd だけの奇数番目なら
× dl > dd:last-child:nth-child(2n+1)
○ dl > dd:last-child:nth-of-type(2n+1)

また、今少しソースコードを見てみた所、jQuery.after(string) はいったん DocumentFragment を生成してから挿入しますので、『DOM 木が狂うかもしれません』は杞憂です。失礼しました。

ただ、繰り返しますが <dd/> は HTML5 で構文違反になりますのでご注意下さい。
    • good
    • 0

Selectors Level 3 ならば:



・dt|dd 全体での奇数番目なら dl > dd:last-child:nth-child(2n+1)
・dd だけの奇数番目なら dl > dd:last-child:nth-child(2n+1)

最近のブラウザなら :nth-child、:nth-of-type に対応していますし(=querySelectorAll で扱える=jQuery が最初に試す)、Sizzle(querySelectorAll が失敗した際に用いられる jQuery の現セレクタエンジン)も一応は対応していたはずです。

jQuery のコールバック関数の中で何度もセレクタ解析&マッチングさせるのは極めて非効率ですので、ズバリのセレクタを 1 つ書くか、もしくはキャッシュをフル活用しましょう。

※なお、HTML として処理させるなら NET を使わずに <dd></dd> として下さい。HTML5 のパーサは、決まった要素以外の開始タグ内の / 構文違反と見なし、無視することになっています。つまり、<dd/> は <dd> と同義です。終了タグ </dd> は省略可能ですが、開始タグ <dd> だけを途中に挿入・再パースすることで DOM 木が狂うかもしれません。
    • good
    • 0

間違え訂正


if(!$("dl dd").length%2==0){
$("dl dd:last-child").after("<dd/>");
}
ですが、レイアウト調整のためだけに空の<dd>を
作ると誰かに怒られそうなので、
おそらくfloatさせて複数列作ってらっしゃるのでしょうから
次のように
    • good
    • 0

先に


$("dl dd:last-child").length
でdd要素の個数を数えておいた上でやるのではだめですか
if(!$("dl dd:last-child").length%2==0){
$("dl dd:last-child").after("<dd/>");
}
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

今、見られている記事はコレ!

  • カウントダウンしたいことある?

    大晦日は、2011年最後の1日です。天皇陛下が「心の重い年」と表現されたように、3月11日の未曽有の大惨事は本当に大変な出来事でした。今年の漢字として選ばれた「絆」が我々にとって大切なものであると強く感じさせ...

  • エルフ田さん:第104話「耐性確認!」

    エルフ(ファンタジーとかに出てくる長寿の種族)の「エルフ田」と、ただの人間である女子社員2人による日常ギャグ。エルフならではのズレたツッコミでバシバシ人間界の話題を斬っていきます。

  • たまランチ:第81話「彼女のパパの料理」

    外ランチを愛してやまない元気な女子社員・たまちゃん(26)。オシャレなお店より「安くておいしい」お店が大好き! そんな女子力低めなたまちゃんの、色気より食い気な日々をつづります。

  • 朝礼がなくならない理由 大切なのは「言葉」「表情」「動作」……NG行為は?

    時間の無駄、上司の自己満足などととくに若い人たちに不評な会社の朝礼。「教えて!goo」にも「朝礼のある会社とない会社では社員の士気などに違いはでてきますか?」と少し否定的な相談が寄せられているが、実は見...

  • 【料理に最適!!!】自宅で簡単に「真空パック」する方法!

    料理をする人なら、できるだけ食材の鮮度を保ち、より良い状態で美味しく頂きたい、と考える。そこで今回、「教えて!goo」編集部が紹介したいのが、料理を頻繁に行う方にオススメの、真空パック保存法である。必要...

おしトピ編集部からのゆる~い質問を出題中

お題をもっとみる


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ