0
if ( !this.labelContainer.append(label).length )
 this.settings.errorPlacement
  ? this.settings.errorPlacement(label, $(element) )
  : label.insertAfter(element);

(このコードは検証プラグインからのもので、入力ごとに繰り返されます)

label<label>text</label>

element<input />

これはうまく機能し、labelの直後に追加しelementます。

次のようになります。

<dd>
    <div>
        <input />
        <label>text</label>
    </div>
</dd>

?の後ではなく、 (の親) のlabel後に配置する方法<div>elementelement

スクリプトの完全なコード:

http://www.jsfiddle.net/YSSCE/1/ (で検索label.insertAfter(element))

4

3 に答える 3

2

を使用しinsertAfterます。jsFiddle の例。

$("<label />").text("Label").insertAfter(
    $("input").parent()
);

コードの更新 (v2) :

this.settings.errorPlacement
      /* not sure what this method do, maybe you need to add .parent() as well*/
    ? this.settings.errorPlacement(label, $(element) )
    : label.insertAfter($(element).parent()); /* insert after the parent */
于 2010-10-26T09:04:31.520 に答える
0

element.parentは、要素の親を取得します。

label.insertAfter(element.parent);

またはおそらく

label.insertAfter($(element).parent);
于 2010-10-26T08:57:18.273 に答える
0

label.insertAfter(element)をlabel.insertAfter(element.parent())に変更します

ただし、HTMLマークアップが変更された場合、これにより問題が発生する可能性があります。

于 2010-10-26T08:58:22.587 に答える