【问题标题】:Problem with jQueryjQuery的问题
【发布时间】:2010-10-26 08:50:28
【问题描述】:
if ( !this.labelContainer.append(label).length )
 this.settings.errorPlacement
  ? this.settings.errorPlacement(label, $(element) )
  : label.insertAfter(element);

(此代码来自验证插件,每次输入都会重复)

label<label>text</label>

element<input />

这很好用,它直接在element 之后添加label

看起来像这样:

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

如何将label 放在&lt;div&gt;element 的父级)之后,而不是在element 之后?

脚本的完整代码:

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

【问题讨论】:

  • label.insertAfter(element); into label.insertAfter(div); 其中div 是您要在后面插入的div 的标识符。
  • 哇...我就是喜欢“不起作用”这个表达方式!这让事情变得更快更清晰!

标签: jquery input append prepend insertafter


【解决方案1】:

使用insertAfterExample on jsFiddle.

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

Updating your code (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 */

【讨论】:

  • 您能否将您的解决方案更新为我的代码?这是一个完整的文件jsfiddle.net/YSSCE/1
【解决方案2】:

element.parent 获取元素的父元素。

label.insertAfter(element.parent);

或者可能

label.insertAfter($(element).parent);

【讨论】:

    【解决方案3】:

    将 label.insertAfter(element) 改为 label.insertAfter(element.parent())

    但是,如果您的 HTML 标记发生更改,这可能会导致问题。

    【讨论】:

    • 假设元素是一个 jQuery 对象。这应该被假定为 parent() 函数是一个 jQuery 函数。
    猜你喜欢
    • 2011-10-19
    • 1970-01-01
    • 2013-03-22
    • 2011-03-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-21
    • 2011-03-15
    • 2011-06-25
    相关资源
    最近更新 更多