2016-03-02 22 views
1

noobish有抱负的前端工程师在这里。我目前正在制作一个html5画布矢量绘图应用程序,它使调色板更换变得简单。 我正在创建一个函数,它创建一个命名的颜色变量/对象(例如'primary'或'secondary')并将其存储在其自己的数组中以便安全保存,但也将它附加到颜色选择器/调色板交换器菜单中已创建的每个矢量形状。Jquery:动态添加到context.childNodes [4]不工作

这个想法是,你绘制一个形状,在那个形状菜单中选择'主要'(或者你以前创建的任何颜色变量),并且形状颜色被设置为任何主要部分,这可以在单独“主”颜色变量的菜单。

我正在使用html select,当创建一个新的颜色时,我需要更新已经创建的矢量形状(包含li的信息)的菜单。我使用这个通过那些在颜色变量构造迭代:

var colorVar = function(name, hexstring){ 
    this.name = name; 
    this.color = hexstring; 
    //append colors to drop downs 
    $("li").each(function(index) { 
    $(this).context.childNodes[4].append("<option value='blue'>" + this.name + "</option>"); 
    }); 
} 

但是当我运行^^的代码,我得到这个错误: 遗漏的类型错误:$(...)context.childNodes [4] .append不是函数

当我运行从内的每一个的console.log($(本).context.childNodes [4])()我得到

<select class='colorList'> 
    <option value='blue'>primary color</option> 
</select> 

每形状,我已经做出了,所以它肯定会迭代它们。 (fyi我添加了原色非动态只是作为一个测试)

我如何追加到选择的内部?

欢迎任何其他建议!

(也jQuery是绝对有包括它的HTML工作,所以它不是一个问题;)

回答

0

.append()不是一个原生的JavaScript功能。你可以使用.insertAdjacentHTML()来实现你想要的。

..... .childNodes[4] 
      .insertAdjacentHTML('beforeend', "<option value='blue'>" + 
                this.name + "</option>"); 
+1

非常感谢!也想添加其他谁查看这个insertAdjacentHTML()内的this.name没有工作,因为'this'变成$(this),所以我只是使用原始输入变量名! – Miloshcavitch

0

为什么不选择下拉使用它的类和像这样做:

$(".colorList").append("<option value='blue'>"+this.name+"</option>"); 
相关问题