我对jQuery有疑问。有人不能将id传递给包含jQuery的javascript函数吗?
例如,load_dl
l完美无缺。我正努力让update_dll
正常工作。
//Create values for drop down list
var empType = ['Sales Associate', 'New Hire Sales Associate', 'Post-Hire Graduation', 'Senior Supervisor'];
//initialize values
load_ddl(empType, 'empTypeddl');
update_dll('empTypedll', 'empType');
//Populate drop down list function
function load_ddl(arr, id) {
for (i = 0; i < arr.length; i++) {
$('<option/>').val(arr[i]).html(arr[i]).appendTo('#' + id);
}
}
//Update Function
function update_ddl(source_id, target_id) {
$('#' + source_id).change(function() {
alert($('#' + source_id + ' option:selected').attr('value'));
});
}
如果我将它简化为最基本的形式,它可以工作。是否可以传递id?
$('#empTypeddl').change(function() {
alert($('#empTypeddl option:selected').attr('value'));
});
答案 0 :(得分:0)
尝试将source_id作为偶数数据传递:
//Update Function
function update_ddl(source_id, target_id) {
$('#' + source_id).change({source_id: source_id}, function(event) {
alert($('#' + event.data.source_id + ' option:selected').attr('value'));
});
}
这将创建一个数据属性并将其附加到事件对象。
答案 1 :(得分:0)
您的代码中有拼写错误:
function update_ddl(source_id, target_id) {
应该是:
function update_dll(source_id, target_id) {
答案 2 :(得分:0)
我使用原生javascript获取对象,并将其分配给变量'source'
function update_ddl(source_id, target_id) {
var source = document.getElementById('source_id');
source.change(function() {
alert('$("#'+ source_id + ' option:selected").attr("value")');
});
}
答案 3 :(得分:0)
update_dll('empTypedll', 'empType');
应该是
update_ddl('empTypeddl', 'empType');