从下拉列表中选择的多个 javascript 似乎无法共存
Multiple javascript selected from dropdown cannot seem to co-exist
我正在构建一个动态创建的字符串,其中正在查看多个下拉菜单的值等。
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 个下拉列表中的 one 32=] 或 condition - 然后就可以了。不确定为什么不能使用这两个。
更新:我确实进行了建议的更改,但在创建函数时出现了非常相似的错误。
未捕获的语法错误:意外的标记}
这是哪个函数:
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]);
}
}
存在该错误是因为您的参数列表从未关闭:
$('[id^=selectNumber] :selected').each(callback);
回调后需要关闭语句。所以你会遇到这样的事情:
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);
}
我正在构建一个动态创建的字符串,其中正在查看多个下拉菜单的值等。
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 个下拉列表中的 one 32=] 或 condition - 然后就可以了。不确定为什么不能使用这两个。
更新:我确实进行了建议的更改,但在创建函数时出现了非常相似的错误。
未捕获的语法错误:意外的标记}
这是哪个函数:
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]);
}
}
存在该错误是因为您的参数列表从未关闭:
$('[id^=selectNumber] :selected').each(callback);
回调后需要关闭语句。所以你会遇到这样的事情:
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);
}