jQuery函数与硬编码。功能不起作用

时间:2012-07-26 17:58:26

标签: jquery html

我对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'));
});

4 个答案:

答案 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');