Я учусь использовать jquery и делаю несколько тестовых страниц для практики.jQuery append() поведение синтаксиса html
В этом примере я использую jquery для привязки функции «showAddToDb()» к кнопке. Когда эта кнопка нажата, jquery должен добавить следующий код формы html в div, помеченный id "memberContent" (который я здесь оставил).
$(document).ready(function() {
$('#addToDb').bind('click',showAddToDb);
});
function showAddToDb() {
var form = $("<div></div>");
var formName = "<div class=\"formRow\"><label for=\"name\">Name: </label><input class=\"nameInput\" type=\"text\" name=\"name\"/></div>";
var formLocation = "<div class=\"formRow\"><label for=\"location\">Location: </label><input class=\"locationInput\" type=\"text\" name=\"location\"/></div>";
var formDes = "<div class=\"formRow\"><label for=\"description\">Description: </label><textarea class=\"descriptionInput\" name=\"description\" rows=\"10\" maxlength=\"1000\"></textarea></div>";
var formPrice = "<div class=\"formRow\"><label for=\"price\">Price: </label><input class=\"priceInput\" type=\"text\" name=\"price\"/></div>";
var formSubmit = "<div class=\"formRow\"><button onclick=\"addToDb()\">Submit</button></div>";
form.append(formName);
form.append(formLocation);
form.append(formDes);
form.append(formPrice);
form.append(formSubmit);
$('#memberContent').append(form);
}
Код выше работает, но я изо всех сил пытался заставить его работать, и мой вопрос - почему он работает. Чтобы заставить его работать, мне пришлось изменить первую строку функции от var form = "<div></div>";
до var form = $("<div></div>");
Я знаю, что знак доллара обозначает вызов jquery, но я не уверен, зачем мне это здесь в этом конкретном дело. Кроме того, я должен также обернуть все остальные vars $()
для добавления? Он работает так, как есть, но я видел несколько примеров в Интернете, которые делают это, не объясняя почему.
отличный ответ, спасибо! – train