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>(element的父级) 之后,而不是element?

脚本的完整代码:

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 回答