3


1

次のようなASP.Netコードがあります(これはFIELDSET内にあります)。

別のラベル別のラベル<... 同じことをもっと...> ...

マークアップをできるだけきれいに保とうとしていますが、さまざまな理由から、最初のラベルの後のリスト項目のすべてをDIVで囲む必要があると判断しました。

別のラベル別のラベル<... 同じことをもっと...> ...

私はむしろ私のフォームを意味上「きれい」に保つことができるように余分なマークアップで私のページを散らすのではなくjQueryを介して「控えめなJavascript」でこれをしたいと思います。

各リスト項目$( "li label")の最初のラベルに到達するためのjQueryセレクターを書く方法や:first-childを使う方法を私は知っています。 選択後のものの挿入方法も知っています。

私が理解することができないのは(少なくともこれは深夜に)リスト項目の最初のラベルの後のすべてを見つける方法です(あるいは最初のラベルを除いて基本的にリスト項目のすべてはそれを置く別の方法でしょう)それをDIVで囲んでdocument ready関数に入れます。

更新:

オーウェンのコードは、一重引用符を周りから削除すると機能しました。

$( 'this')

そして適切な子孫セレクタを設定します。

$( "li label:first-child")

リスト項目の後にある最初のラベルだけを選択するためです。

これが私がしたことです:

$(document).ready(function(){

$( 'li label:first-child')。each(関数(){$(this).siblings()。wrapAll( '');}); ;));

2 Answer


5


編集:修正されたコード(詳細は改訂履歴の古いコードとコメントを参照)

大丈夫これは動作するはずです:

$( 'li label:first-child')。each(関数(){$(this).siblings()。wrapAll( '');});

から:

あるものその他のもの

他のラベルのもの3

生成します:

あるものその他のもの

他のラベルのもの3


3


1つの方法は、すべてを内部にラップすることです。

次にラベルを外側に移動します。

var $ div = $( 'li')。wrapInner( '')。children( 'div'); $ div.children( 'label')。prependTo($ div.parent());