Javascript 通过ajax检索器的succes函数调用的函数向父级添加select

Javascript 通过ajax检索器的succes函数调用的函数向父级添加select,javascript,php,jquery,ajax,dom,Javascript,Php,Jquery,Ajax,Dom,基本上我是从一个文件中收集数据,这些数据如下: [{"course_id":"1","name":"test"}, {"course_id":"2","name":"test1"}, {"course_id":"3","name":"test2"}] function createSelect(data) { for(i = 0; i < data.length; i++) { console.log(data[i]['course_id'], data[i]

基本上我是从一个文件中收集数据,这些数据如下:

[{"course_id":"1","name":"test"},
 {"course_id":"2","name":"test1"},
 {"course_id":"3","name":"test2"}]
function createSelect(data) {
    for(i = 0; i < data.length; i++) {
        console.log(data[i]['course_id'], data[i]['name']);

        var select = $('<select></select');
        $(this).parent().append(select);
    }
}
$(document).ready(function () {
    $('.note').click(function () {
        switch($(this).attr('id')) {
            case '1': id = 'getCourse'; break;
            case '2': break;
            case '3': break;
            case '4': break;
            case '5': break;
        };

        if(id != '') {
            $.ajax({
                url: './functions/' + id + '.php',
                cache: false,
                    dataType: 'json',
                    success: function(data) {
                    createSelect(data);
                },
                error: function (request, status, error) {
                    console.log('error', error);
                }
            });
        };
    });
});
Javascript/jquery代码如下:

[{"course_id":"1","name":"test"},
 {"course_id":"2","name":"test1"},
 {"course_id":"3","name":"test2"}]
function createSelect(data) {
    for(i = 0; i < data.length; i++) {
        console.log(data[i]['course_id'], data[i]['name']);

        var select = $('<select></select');
        $(this).parent().append(select);
    }
}
$(document).ready(function () {
    $('.note').click(function () {
        switch($(this).attr('id')) {
            case '1': id = 'getCourse'; break;
            case '2': break;
            case '3': break;
            case '4': break;
            case '5': break;
        };

        if(id != '') {
            $.ajax({
                url: './functions/' + id + '.php',
                cache: false,
                    dataType: 'json',
                    success: function(data) {
                    createSelect(data);
                },
                error: function (request, status, error) {
                    console.log('error', error);
                }
            });
        };
    });
});
函数createSelect(数据){
对于(i=0;i$(此)
createSelect
函数中,您需要将元素传递给
createSelect
函数

function createSelect(element, data) {
    for(i = 0; i < data.length; i++) {
        var select = $('<select></select');

        //Use element
        element.parent().append(select);
    }
}
$(document).ready(function () {
    $('.note').click(function () {
            var element = $(this); //Store this reference
            $.ajax({
                success: function(data) {
                    createSelect(element, data); //pass the element
                }
            });
        };
    });
});
函数createSelect(元素、数据){
对于(i=0;i
而不是

$(this).parent().append(select);

原因
$(this)
在函数中不引用任何内容

旁注:
$(this).attr('id')
编写
this.id
;-)是一种不必要的冗长和迂回的方式。哦,谢谢!不知道。实际上它包含DOM元素(一个div)这将触发整个单击事件。@如果有多个元素,则使用单个
note
,上面的“平滑”将起作用??????