Javascript 如何在选择器id中传递变量?
我想在变量idd的select元素中传递所选的值,然后在以后使用它。但它并没有存储在变量中。我试图检查alert函数中的值,但即使是alert函数也没有被调用Javascript 如何在选择器id中传递变量?,javascript,jquery,Javascript,Jquery,我想在变量idd的select元素中传递所选的值,然后在以后使用它。但它并没有存储在变量中。我试图检查alert函数中的值,但即使是alert函数也没有被调用 <script type="text/javascript" charset="utf-8"> $(function(){ $("select.ctlJob").change(function(){ $.getJSON("select.php",{id: $(this).val(), aja
<script type="text/javascript" charset="utf-8">
$(function(){
$("select.ctlJob").change(function(){
$.getJSON("select.php",{id: $(this).val(), ajax: 'true'}, function(j){
var options = '';
for (var i = 0; i < j.length; i++) {
options += '<option value="' + j[i].optionValue + '">' + j[i].optionDisplay + '</option>';
}
var idd=$(this).val();
//alert(idd);
$('select#'+ idd).html(options);
})
})
})
</script>
$(函数(){
$(“select.ctlJob”).change(函数(){
$.getJSON(“select.php”,{id:$(this.val(),ajax:'true'},函数(j){
var选项=“”;
对于(变量i=0;i
试试这个-(移动的var idd=$(this.val();
在getJSON
之外)
$(函数(){
$(“select.ctlJob”).change(函数(){
var idd=$(this.val();
$.getJSON(“select.php”,{id:$(this.val(),ajax:'true'},函数(j){
var选项=“”;
对于(变量i=0;i
试试这个-(移动的var idd=$(this.val();
在getJSON
之外)
$(函数(){
$(“select.ctlJob”).change(函数(){
var idd=$(this.val();
$.getJSON(“select.php”,{id:$(this.val(),ajax:'true'},函数(j){
var选项=“”;
对于(变量i=0;i
您无法获取值,因为您上下文中的此
未引用选择。您需要执行以下操作:
<script type="text/javascript" charset="utf-8">
$(function(){
$("select.ctlJob").change(function(){
var selectBox = $(this);
$.getJSON("select.php",{id: $(this).val(), ajax: 'true'}, function(j){
var options = '';
for (var i = 0; i < j.length; i++) {
options += '<option value="' + j[i].optionValue + '">' + j[i].optionDisplay + '</option>';
}
var idd=selectBox.val();
//alert(idd);
$('select#'+ idd).html(options);
})
})
})
</script>
$(函数(){
$(“select.ctlJob”).change(函数(){
var-selectBox=$(这是);
$.getJSON(“select.php”,{id:$(this.val(),ajax:'true'},函数(j){
var选项=“”;
对于(变量i=0;i
您无法获取值,因为您上下文中的此
未引用选择。您需要执行以下操作:
<script type="text/javascript" charset="utf-8">
$(function(){
$("select.ctlJob").change(function(){
var selectBox = $(this);
$.getJSON("select.php",{id: $(this).val(), ajax: 'true'}, function(j){
var options = '';
for (var i = 0; i < j.length; i++) {
options += '<option value="' + j[i].optionValue + '">' + j[i].optionDisplay + '</option>';
}
var idd=selectBox.val();
//alert(idd);
$('select#'+ idd).html(options);
})
})
})
</script>
$(函数(){
$(“select.ctlJob”).change(函数(){
var-selectBox=$(这是);
$.getJSON(“select.php”,{id:$(this.val(),ajax:'true'},函数(j){
var选项=“”;
对于(变量i=0;i
这是一个范围问题,您只需访问所选值一次。此代码访问更改处理程序中的值,然后在getJSON响应处理程序中使用该值,该处理程序是一个子作用域函数。所有子作用域函数都可以访问其父作用域,这就是为什么在响应处理程序函数中定义val
$(function(){
$("select.ctlJob").change(function(){
var val = $(this).val();
$.getJSON("select.php",{id: val, ajax: 'true'}, function(j){
var options = '';
for (var i = 0; i < j.length; i++) {
options += '<option value="' + j[i].optionValue + '">' + j[i].optionDisplay + '</option>';
}
$('select#'+ val).html(options);
});
})
})
$(函数(){
$(“select.ctlJob”).change(函数(){
var val=$(this.val();
$.getJSON(“select.php”,{id:val,ajax:'true'},函数(j){
var选项=“”;
对于(变量i=0;i
这是一个范围问题,您只需访问所选值一次。此代码访问更改处理程序中的值,然后在getJSON响应处理程序中使用该值,该处理程序是一个子作用域函数。所有子作用域函数都可以访问其父作用域,这就是为什么在响应处理程序函数中定义val
$(function(){
$("select.ctlJob").change(function(){
var val = $(this).val();
$.getJSON("select.php",{id: val, ajax: 'true'}, function(j){
var options = '';
for (var i = 0; i < j.length; i++) {
options += '<option value="' + j[i].optionValue + '">' + j[i].optionDisplay + '</option>';
}
$('select#'+ val).html(options);
});
})
})
$(函数(){
$(“select.ctlJob”).change(函数(){
var val=$(this.val();
$.getJSON(“select.php”,{id:val,ajax:'true'},函数(j){
var选项=“”;
对于(变量i=0;i
this在$.getJSON()
中的值不引用select.ctlJob
元素。它有一个新的范围和新的背景。存储一个引用,如var$that=$(this)如果要引用选择.ctlJob
…或只需将var idd
行移到$.getJSON()
部分之外,请使用$that
,然后在$内部使用$this
的值。getJSON()
不引用选择.ctlJob
元素。它有一个新的范围和新的背景。存储一个引用,如var$that=$(this)如果要引用选择.ctlJob
…或只需将var idd
行移到$.getJSON()
块之外,请使用$that
。是的,现在它工作正常。谢谢但这有什么解释呢?@Lovy这是因为您试图在getJSON
上下文中使用$(this)
,所以它没有提到选择,现在它工作正常。谢谢但这是什么解释呢?@Lovy这是因为您试图在getJSON
上下文中使用$(this)
,所以它并不指正在更改的选择