在div中插入元素,在div中插入具有类的特定元素

时间:2012-12-20 18:26:52

标签: jquery dom-manipulation

所以,我没有掌握它。我想要做的是在div中添加一个脚本元素,该div具有带有'colorpick'类的输入标记。

<div class="field">
    <input type="text" value="#fefefe" class="colorpick" >
</div>

所以我想要实现的是:

<div class="field">
    <input type="text" value="#fefefe" class="colorpick" >
    <script type="text/javascript">$( function() { $('.colorpick').colorpicker(); }); </script>
</div>

这就是我用外部文件添加内联脚本的方法

(function ($) {
    $(document).ready(function () {
        var code = "$( function() { $('.colorpick').colorpicker(); }); ";
        var script = document.createElement('script');
        script.type = 'text/javascript';
        script.text = code;
        $("input.colorpick").insertAfter(script);
    });
 })(jQuery);

但不知怎的,我无法让它发挥作用,这真的让我感到困扰。

2 个答案:

答案 0 :(得分:1)

为什么你试图使用脚本添加脚本?您可以通过jquery添加输入字段,然后通过调用

初始化colorpicker
$('.colorpick').colorpicker();

答案 1 :(得分:0)

在回答您的问题时,您希望使用$.fn.after而不是$.fn.insertAfter

$("input.colorpick").after(script);

前者在匹配的元素之后插入参数,而后者在参数之后插入匹配的对象。

  

.after() .insertAfter() 方法执行相同的任务。主要区别在于语法特定,内容和目标的放置。对于.after(),方法前面的选择器表达式是插入内容之后的容器。另一方面,对于.insertAfter(),内容在方法之前,作为选择器表达式或动态创建的标记,并在目标容器之后插入。


话虽如此,我也认为你应该直接执行代码。

(function($){
  $(function(){
    $('.colorpick').colorpicker();
  });
})(jQuery);