2013-05-10 2 views
0

У меня есть главный div, который содержит несколько div и текстовое поле внутри. Внутри этого текстового поля пользователь вводит контент.Установить текст текстового поля внутри дублированного div

После того, как пользователь закончил ввод содержимого, я дублирую весь мастер-div. Но когда я дублирую мастер-div, я могу только дублировать все, кроме содержимого текстового поля внутри.

Как я это сделал, это копирование html главного div в javascript. Буду признателен, если кто-нибудь сможет мне помочь.

Мастер Div является createmain1 здесь

<div id="createmain1" class="createmainclass1"> 
    <div id="leftbox1"> 
    <!--<p>the preview left div</p>--> 
    <div id="createmain1leftframe1" style="height: 100%; background-repeat: no-repeat; width: 100%;"> 
     <div id="createmain1leftframe2" style="height: 100%; background-repeat: no-repeat; width: 100%;"> 
     <div id="createmain1leftframe3" style="height: 100%; background-repeat: no-repeat; width: 100%;"> 
      <div id="createmain1leftframe4" style="height: 100%; background-repeat: no-repeat; width: 100%;"> 
      <textarea id="lefttext1" spellcheck="true" maxlength="500" wrap="hard" style="width: 100%; font-family: 'GillSansLightRegular'; overflow:hidden; resize:none; font-size:20px; border:none; height: 100%; background-color:transparent" placeholder="Enter Text Here"></textarea> 
      </div> 
     </div> 
     </div> 
    </div> 
    </div> 
    <div id="rightbox1"> 
    <!--<p>the preview right div</p>--> 
    <div id="createmain1rightframe1" style="height: 100%; background-repeat: no-repeat; width: 100%;"> 
     <div id="createmain1rightframe2" style="height: 100%; background-repeat: no-repeat; width: 100%;"> 
     <div id="createmain1rightframe3" style="height: 100%; background-repeat: no-repeat; width: 100%;"> 
      <div id="createmain1rightframe4" style="height: 100%; background-repeat: no-repeat; width: 100%;"> 
      <textarea id="righttext1" spellcheck="true" maxlength="500" wrap="hard" style="width: 100%; font-family: 'GillSansLightRegular'; overflow:hidden; resize:none; font-size:20px; border:none; height: 100%; background-color:transparent" placeholder="Enter Text Here"></textarea> 
      </div> 
     </div> 
     </div> 
    </div> 
    </div> 
</div> 

Место, где я дублируя это

<div id="finalimage" style="background-color:lightcoral" ></div> 

JavaScript, что я написал это

$("#Preview").click(function() { 
    var firstdiv = $("#createmain1").html(); 
    var lefttext = $("#lefttext1").val(); 
    $("#finalimage").css("height", "310px"); 
    $("#finalimage").css("width", "460px"); 
    $("#finalimage").html(firstdiv); 
    $("#finalimage").children("#leftbox1").css("height", "300px"); 
    $("#finalimage").children("#leftbox1").css("width", "225px"); 
    $("#finalimage").children("#leftbox1").css("float", "left"); 
    $("#finalimage").children("#rightbox1").css("height", "300px"); 
    $("#finalimage").children("#rightbox1").css("width", "225px"); 
    $("#finalimage").children("#rightbox1").css("float", "left"); 
    $("#finalimage").children("#lefttext1").val(lefttext); 
} 
+0

Просто указатель, но нет, и никогда не было, элемент «текстовое поле». Когда-либо. Этого не существует, несмотря на продолжающийся поток людей, которые, кажется, поверили, необъяснимо, в противном случае. У вас может быть '' или '', но это так близко, как есть. –

ответ

0

То, что выглядит, как это происходит, что вы захватывая первый DIV здесь:

var firstdiv = $("#createmain1").html(); 

Добавьте этот код в эмулировать дивы:

$("#finalimage").html(firstdiv); 

И вы на самом деле не что-то с этим делать.

Вы также не можете копировать идентификаторы. Я бы перестроил divs в новой системе с помощью jQuery, а не просто копировал html из одного в другой.

EDIT:

Я включил jsfiddle пример для вас, чтобы проверить. Если вы хотите сохранить все одинаково, вы можете просто использовать .find() для захвата текстовой области и установки информации.

http://jsfiddle.net/EqaLw/

+0

Вы правы. Я хватаю html-содержимое createmain1, а затем просто копируя внутри finalimage. Я не мог придумать другого способа сделать это. Вероятно, я должен придерживаться другого подхода к этому, как вы упомянули. Спасибо за помощь. Ценить это. – nishantvodoo

+0

awesome ... работает красиво .. Спасибо тонну .. Ты почти меня беспокоил там. Если бы я мог, ваша репутация была бы хорошей. – nishantvodoo

3

как вы используете jQuery - вы пробовали использовать .clone() метод?

http://api.jquery.com/clone/

также вы создаете дивы с повторяющимся атрибутом id который не допускается.

страница выше объясняет, как использовать клон() и рекомендует:

Примечание: Использование .clone() имеет побочный эффект производства элементов с одинаковыми атрибутами Ид, которые, как предполагается, должны быть уникальными. Там, где это возможно, рекомендуется избегать клонирования элементов с этим атрибутом или вместо этого использовать атрибуты класса.

+0

yes Я пробовал использовать метод .clone(), но он в основном делает то же самое, что и .html().Метод Clone создаст объект из него, и мне все равно нужно получить доступ к содержимому html, чтобы я мог установить его в div finalimage. Также, если вы можете предложить, как я могу изменить идентификатор div после того, как я его скопирую? – nishantvodoo

+1

@nishan_vodoo '.clone()' делает намного больше, чем '.html()' - это позволяет вам сохранять обработчики событий, связанные с данными jQuery и jQuery для элементов. – Ian

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