如何访问jQuery插件中的附加元素并将其存储在全局变量中?

时间:2013-08-21 16:58:47

标签: jquery append

我正在慢慢地前进并创建几个jquery插件,这些插件应该是轻量级的,并且正是我需要的。

现在我想制作一个超级简单的jQuery进度条。问题是我无法访问使用jQuery .append()动态附加的元素。

这是JSFidle:http://jsfiddle.net/LRHXf/6/

正如您所看到的,“儿童”.smk_pb_child应该具有不同的颜色和宽度,但由于某些未知原因,我无法使其发挥作用。

如何在变量中获取此元素,然后在需要的任何地方使用它?

4 个答案:

答案 0 :(得分:2)

在添加元素之前设置var child,需要更改你追加函数内的var:

plugin.appendChildren = function() {
    plugin.append('<div class="smk_pb_child"></div>');
    child = plugin.children('.smk_pb_child');
}

var child;

小提琴:http://jsfiddle.net/LRHXf/12/

答案 1 :(得分:1)

问题是您在追加子元素之前初始化child变量。添加appendChildren div后,需要在smk_pb_child方法中初始化变量:

plugin.appendChildren = function () {
     plugin.append('<div class="smk_pb_child"></div>');
     child = plugin.children('.smk_pb_child');
}

<强> Working Demo

答案 2 :(得分:0)

我看到你的jsfiddle演示并使用这段代码

// Append children
        var appendhtml='<div class="smk_pb_child"></div>'; 
        plugin.appendChildren = function() {
                    plugin.append(appendhtml);
                }

或者您也可以使用

var appendhtml=$("<div />").attr('class',"smk_pb_child");

答案 3 :(得分:0)

尝试在jQuery中创建html并将其设置为变量,然后附加变量,而不是追加html字符串。

plugin.appendChildren = function() {
    plugin.myDiv = $('<div class="smk_pb_child"></div>');
    plugin.append(plugin.myDiv);
};