JQuery` .after()`呈现HTML而不是解析它

时间:2017-02-19 20:30:02

标签: javascript jquery

所以我有这个jQuery(1.8.3)代码:

$("input[title='test']")[0].after("<p><a href='#' onclick='doSomething();'>Encrypt</a></p>");

但它只呈现文本,而不是实际的HTML。 不知道我在这里做错了什么......

1 个答案:

答案 0 :(得分:1)

当您通过索引[0]访问JQuery包装集中的特定元素时,返回的元素是常规DOM元素而不是JQuery对象,因此after()(或任何其他JQuery成员)不会在上面工作。

对JQuery包装的对象集使用数组索引表示法实际上只是制作JQuery wrappedSet.get() method call 的简写(不要与 {{3}混淆方法调用)。

如果你将结果元素重新包装在JQuery对象中,你可以回到JQuery中使用它。

请注意,$("input[title='test']")[0]包含$()

&#13;
&#13;
$($("input[title='test']")[0]).after("<p><a href='#' onclick='doSomething();'>Encrypt</a></p>");
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input title="test"/>
&#13;
&#13;
&#13;