简体   繁体   中英

appendChild() issue on button click

Final Output :I am trying to add Students and teachers on button clicks and display them separately.

My JS :

function SchoolAdmission(name, age, department) {
    this.name = name;
    this.age = age;
    this.department = department;
}

SchoolAdmission.prototype.display = function() {
    var print = document.createElement("div");
    print.innerHTML = "Name: " + this.name + ", age:" + this.age + ", depart: " + this.department + "<br><br><br>";
    $("button").click(function() {
        if (this.id === "addStudent") {
            document.getElementById('studentList').appendChild(print);
        }
        else {
            document.getElementById('teacherList').appendChild(print);
        }
    });
};
addMember = function addMember() {
    var s1 = new SchoolAdmission();
    s1.name = document.getElementById('name').value;
    s1.age = document.getElementById('age').value;
    s1.department = document.getElementById('department').value;
    s1.display();
};

Here's my fiddle : http://jsfiddle.net/LPu9x/

Basically am trying to do using prototype.

So my issues are:

1)On clicking the "Add student" or "Add Teacher",the data ends up in the wrong side. (Resolved)

2)Can this program be done in a more efficient way?(Using Prototype)

try this

function SchoolAdmission(name, age, department) {
    this.name = name;
    this.age = age;
    this.department = department;
}

SchoolAdmission.prototype.display = function(nameButton) {
    var print = document.createElement("div");
    print.innerHTML = "Name: " + this.name + ", age:" + this.age + ", depart: " + this.department + "<br><br><br>";
    if (nameButton === "addStudent") {
        document.getElementById('studentList').appendChild(print);
    }
    else {
        document.getElementById('teacherList').appendChild(print);
    }
};
addMember = function addMember(e) {
    var s1 = new SchoolAdmission();
    s1.name = document.getElementById('name').value;
    s1.age = document.getElementById('age').value;
    s1.department = document.getElementById('department').value;
    s1.display(e.target.id);
};

 <button id="addStudent" onclick="addMember(event)">Add Student</button>

http://jsfiddle.net/LPu9x/3/

Do you object to jQuery? FIDDLE

JS

$('#name').focus();

$('#addStudent').click(function(){
    var studentname = $('#name').val();
    var studentage = $('#name').val();
    var dept = $('#name').val();
    $('#studentList').append('<li>' + studentname + '-' + studentage + '-' + dept + '</li>');
    $('input').val('');
});
$('#addTeacher').click(function(){
    var studentname = $('#name').val();
    var studentage = $('#name').val();
    var dept = $('#name').val();
    $('#teacherList').append('<li>' + studentname + '-' + studentage + '-' + dept + '</li>');
    $('input').val('');
});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM