所以我有这个jQuery(1.8.3)代码:
$("input[title='test']")[0].after("<p><a href='#' onclick='doSomething();'>Encrypt</a></p>");
但它只呈现文本,而不是实际的HTML。 不知道我在这里做错了什么......
答案 0 :(得分:1)
当您通过索引[0]
访问JQuery包装集中的特定元素时,返回的元素是常规DOM元素而不是JQuery对象,因此after()
(或任何其他JQuery成员)不会在上面工作。
对JQuery包装的对象集使用数组索引表示法实际上只是制作JQuery wrappedSet.get()
method call 的简写(不要与 {{3}混淆方法调用)。
如果你将结果元素重新包装在JQuery对象中,你可以回到JQuery中使用它。
请注意,$("input[title='test']")[0]
包含$()
。
$($("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;