Jquery,使用$.each,获取不到变量的值
Jquery, using $.each, doesn't get the value of variable
我正在使用 Jquery 向 select 添加一些选项,但是,选项并不总是相同的,因此,我使用一个名为 materia 的变量来获取 a 的值previus select 知道我应该添加哪些选项。
我不知道我是否解释正确,这里是一些代码。
...
materia = $("#selMateria").val();
...
$.each(materia, function(val,text){
$("#selGrupo").append(new Option(text,val));
});
我之前用我能得到的值的名称定义了变量
var name{
opt : 'text'
}
问题是,尽管我在 var materia 上得到了正确的值,但添加选项的函数不起作用。
如果有人想看完整代码:
INDEX.php:
<div class="col-xs-6 col-centered form-group">
<label for="facultad">Facultad</label>
<select class="form-control" name="facultad" id="selFac" required>
<option selected disabled hidden value="">---</option>
<option value="ingenieria">Ingeniería</option>
<option value="economia">Economía</option>
<option value="derecho">Derecho</option>
</select>
</div>
<div class="col-xs-6 col-centered form-group" id="divMateria">
<label for="materia">Materia</label>
<select class="form-control" name="materia" id="selMateria" required>
<option selected disabled hidden value="">---</option>
</select>
</div>
<div class="col-xs-12 col-centered form-group" id="divGrupo">
<label for="grupo">Grupo</label>
<select class="form-control" name="grupo" id="selGrupo" required>
<option selected disabled hidden value="">---</option>
</select>
</div>
这是 JQUERY 函数
function addOpt(id, tipo, optDe) {
removeAllSel(id);
if (tipo == 'mat') {
switch (optDe)
{
case 'ingenieria':
$.each(matIng, function(val, text) {
$("#" + id).append(new Option(text, val));
});
break;
case 'economia':
$.each(matEco, function(val, text) {
$("#" + id).append(new Option(text, val));
});
break;
}
}
else if (tipo == 'gru') {
materia = $("#selMateria").val();
$("#" + id).append(new Option($("#selMateria").val(), 'val'));
$.each(materia, function(val, text) {
$("#selGrupo").append(new Option(text, val));
});
}
else {
removeAllSel(id);
}
}
非常感谢!
首先:
materia = $("#selMateria").val();
$("#" + id).append(new Option($("#selMateria").val(), 'val'));
$.each(materia, function(val, text) {
$("#selGrupo").append(new Option(text, val));
});
在这种情况下 materia
包含单个值 select。 $.each
在这种情况下将仅迭代该单个值。我假设你想要这样的东西:
materia = $("#selMateria").val();
$("#" + id).append(new Option($("#selMateria").val(), 'val'));
$.each($("#selMateria"), function(val, text) {
$("#selGrupo").append(new Option(text, val));
});
我正在使用 Jquery 向 select 添加一些选项,但是,选项并不总是相同的,因此,我使用一个名为 materia 的变量来获取 a 的值previus select 知道我应该添加哪些选项。 我不知道我是否解释正确,这里是一些代码。
...
materia = $("#selMateria").val();
...
$.each(materia, function(val,text){
$("#selGrupo").append(new Option(text,val));
});
我之前用我能得到的值的名称定义了变量
var name{
opt : 'text'
}
问题是,尽管我在 var materia 上得到了正确的值,但添加选项的函数不起作用。
如果有人想看完整代码:
INDEX.php:
<div class="col-xs-6 col-centered form-group">
<label for="facultad">Facultad</label>
<select class="form-control" name="facultad" id="selFac" required>
<option selected disabled hidden value="">---</option>
<option value="ingenieria">Ingeniería</option>
<option value="economia">Economía</option>
<option value="derecho">Derecho</option>
</select>
</div>
<div class="col-xs-6 col-centered form-group" id="divMateria">
<label for="materia">Materia</label>
<select class="form-control" name="materia" id="selMateria" required>
<option selected disabled hidden value="">---</option>
</select>
</div>
<div class="col-xs-12 col-centered form-group" id="divGrupo">
<label for="grupo">Grupo</label>
<select class="form-control" name="grupo" id="selGrupo" required>
<option selected disabled hidden value="">---</option>
</select>
</div>
这是 JQUERY 函数
function addOpt(id, tipo, optDe) {
removeAllSel(id);
if (tipo == 'mat') {
switch (optDe)
{
case 'ingenieria':
$.each(matIng, function(val, text) {
$("#" + id).append(new Option(text, val));
});
break;
case 'economia':
$.each(matEco, function(val, text) {
$("#" + id).append(new Option(text, val));
});
break;
}
}
else if (tipo == 'gru') {
materia = $("#selMateria").val();
$("#" + id).append(new Option($("#selMateria").val(), 'val'));
$.each(materia, function(val, text) {
$("#selGrupo").append(new Option(text, val));
});
}
else {
removeAllSel(id);
}
}
非常感谢!
首先:
materia = $("#selMateria").val();
$("#" + id).append(new Option($("#selMateria").val(), 'val'));
$.each(materia, function(val, text) {
$("#selGrupo").append(new Option(text, val));
});
在这种情况下 materia
包含单个值 select。 $.each
在这种情况下将仅迭代该单个值。我假设你想要这样的东西:
materia = $("#selMateria").val();
$("#" + id).append(new Option($("#selMateria").val(), 'val'));
$.each($("#selMateria"), function(val, text) {
$("#selGrupo").append(new Option(text, val));
});