从下拉列表中选择的多个javascript似乎无法共存

时间:2015-07-08 19:56:56

标签: javascript jquery drop-down-menu

我正在构建一个动态创建的字符串,其中正在查看其值等的多个下拉列表。

HTML:    <div id="codeSnip">WHERE ... </div>

然后在按钮上单击一个javascript函数:

function applyFilters(val)  {

    var x = document.getElementById("codeSnip");
    var newDiv = document.createElement("div"); 
    var newContent = document.createTextNode("Hi there and greetings!"); 

    //var column = []; 
    //$('[id^=selectNumber] :selected').each(function(i, selected){ 
    //column[i] = $(selected).text(); 

    var conditions = []; 
    $('[id^=condition] :selected').each(function(z, selected){ 
    conditions[z] = $(selected).text();      


    //newContent = document.createTextNode(column[i]);  
    //x.appendChild(newContent); //add the text node to the newly created div. 
    newContent = document.createTextNode(conditions[z]);  
    x.appendChild(newContent); 

    newContent =  document.createTextNode(" AND ");  
    x.appendChild(newContent); 

});

如果我的原始列创建者没有错误,我似乎无法存在两个下拉列表,因为警报和console.log没有报告任何内容,因此在运行时实际上没有任何操作。

Error:   Uncaught SyntaxError: missing ) after argument list  

- (这是针对动态创建下拉菜单的其他功能)但只要我注释掉 selectNumber 条件的2个下拉列表中的一个 - 然后就可以了。不知道为什么这两个都不能使用。

更新:我确实在创建函数中进行了建议但非常相似的更改。

未捕获的SyntaxError:意外的令牌}

这是什么功能:

function columnCreator(columnArray, selectId) {
    var dropdown = document.getElementById(selectId);
    for (var i = 0; i < columnArray.length; ++i) {
        // Append the element to the end of Array list
        dropdown[dropdown.length] = new Option(columnArray[i], columnArray[i]);
    }

}

1 个答案:

答案 0 :(得分:1)

该错误的存在是因为您的参数列表从未关闭过:

function applyFilters(val)  {

    var x = document.getElementById("codeSnip");
    var newDiv = document.createElement("div"); 
    var newContent = document.createTextNode("Hi there and greetings!"); 

    var column = []; 
    $('[id^=selectNumber] :selected').each(function(i, selected){ 
        column[i] = $(selected).text(); 

        newContent = document.createTextNode(column[i]);  
        x.appendChild(newContent); //add the text node to the newly created div. 
    });

    var conditions = []; 
    $('[id^=condition] :selected').each(function(z, selected){ 
        conditions[z] = $(selected).text();

        newContent = document.createTextNode(conditions[z]);  
        x.appendChild(newContent);  
    }); 

    newContent =  document.createTextNode(" AND ");  
    x.appendChild(newContent); 

}

回调后,需要关闭语句。所以你会喜欢这样:

Activate