Получить текущий HTML элемент

У меня есть div с идентификатором "stage". В этом разделе есть текстовые входы и все остальное, что может быть там помещено.

Когда пользователь нажимает на кнопку, я хочу получить html на этапе div и сохранить его где-нибудь. Моя проблема, которую я замечаю, состоит в том, что я не получаю текущий HTML после внесения изменений, чтобы сказать TextInput на экране.

Проблема в том, что я никогда не знаю, что будет на этом этапе div. Это может быть любое количество вещей, в большинстве случаев содержащих элементы формы, в которые пользователь может вводить текст.

Например, если этап содержит

<input type='text' value="Test Content">

Когда он был создан, а затем пользователь изменил значение ввода на "Мой тестовый контент", я хочу, чтобы jQuery html() получал

<input type='text' value="My Test Content"> 

При нажатии на кнопку.

Как это может быть сделано?

Спасибо за помощь!

2 ответа

Решение

Используя только .html() не изменит значение input, Он продолжит использовать начальное значение: <input type='text' value="Test Content">, Я рекомендую использовать .each() а также .val(),

JAVASCRIPT:

$(document).ready(function(){
    $('#b1').click(function(){
        $('#stage input').each(function(){
           $('#stage input').attr('value', $(this).val());
        });
        $('#results').html($('#stage').html());
    });
});

ДЕМО: http://jsfiddle.net/dirtyd77/Yctwk/5/

Если вам известен идентификатор кнопки, вы можете сделать следующее:

var divHtml; 

$("#buttonID").click(function() {
    divHtml = ("#stage").html();
});

Это назначит весь HTML-код внутри div с идентификатором "stage" переменной divHtml при нажатии на кнопку с идентификатором "buttonID"

Другие вопросы по тегам