2016-01-25 2 views
1

У меня есть некоторые JavaScript, который я хочу, чтобы быть выполнены и изменить элемент списка, когда нажата кнопка:Добавление в список HTML с помощью JQuery и Javascript

<button id="click-me" type="button"> 
    <img src="https://cdn4.iconfinder.com/data/icons/basic-ui-elements/700/07_plus-128.png" alt="Add to Event" style="width: 50px"/> 
</button> 

<div> 
    <p>Meeting Participants:</p> 
    <ol id ="list"> 

    </ol> 
</div> 

Javascript/JQuery:

var List = document.getElementById('list'); 

$(function(){ 
    $("#click-me").click(function (e){ 
     e.preventDefault(); 

     document.getElementById('list').style.backgroundColor = "green"; 
     var entry = document.createElement("li"); 
     var testText = document.createTextNode("test") 
     entry.appendChild(testText); 
     List.appendChild(entry); 

     return false; 

    }); 
}); 

Цвет фона успешно стал зеленым, но элемент списка не может быть добавлен. Почему мой код не работает? Благодаря

+3

Ваш код работает отлично: HTTPS : //jsfiddle.net/RoryMcCrossan/ay4m05rq/. Вы проверили консоль на наличие ошибок? Также обратите внимание, что вы можете сделать код намного проще, если вы используете только jquery: https://jsfiddle.net/RoryMcCrossan/ay4m05rq/2/ –

+0

Переменная 'List' должна быть не определена, Move' var List = document.getElementById (' list '); 'inside' $ (function() {...}); ' – Satpal

+0

@Satpal еще лучше, если он перемещается внутри обработчика события клика, чтобы убедиться, что элемент списка был создан при событии щелчка – gurvinder372

ответ

1

просто положить List инициализацию внутри обработчика события щелчка

$(function(){ 
    $("#click-me").click(function (e){ 
     e.preventDefault(); 

     var List = document.getElementById('list'); 
     document.getElementById('list').style.backgroundColor = "green"; 
     var entry = document.createElement("li"); 
     var testText = document.createTextNode("test") 
     entry.appendChild(testText); 
     List.appendChild(entry); 

     return false; 

    }); 
}); 
1

Реализация JQuery, как вы уже используете библиотеку:

$(function(){ 
    $("#click-me").click(function (e){ 
     $('#list').prepend('<li>test</li>').css('background-color', 'green'); 
     return false; 
    }); 
}); 

https://jsfiddle.net/nc9guq2r/

Смежные вопросы