Как получить HTML-код div, включая значение входов - PullRequest
2 голосов
/ 30 ноября 2009

Скажите, у меня есть этот div:

<div id='myDiv'>
  <input type='text' id='foo' size='30' />
</div>

и я запускаю этот код JavaScript:

($("#foo").val('bar');

Если я тогда сделаю:

alert($("#myDiv").html());

или

alert(document.getElementById('myDiv').innerHTML);

Я получаю только оригинальную копию html, в которой значение foo остается пустым. Я хотел бы получить текущую копию HTML с атрибутом value='bar', добавленным в HTML-код foo.

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

Ответы [ 4 ]

2 голосов
/ 24 декабря 2009

Вы можете попытаться установить значение параметра напрямую, но я уверен, что это не повлияет на вывод .html () или .innerHTML:

$('#foo').attr('value', 'foo');

Вместо этого, почему бы не добавить это в себя:

var html = $('#foo').html();
if (html.indexOf('value=') == -1)
    html.replace(/^<input/, '<input value="' + $('#foo').val() + '"'); 
1 голос
/ 30 ноября 2009

Вы действительно хотите использовать функцию jquery (). clone () . Это позволит вам клонировать #mydiv, а затем вставить свой клон в iBox.

var clone = $('#myDiv').clone();
$('#iBox').append(clone);
0 голосов
/ 23 декабря 2009

насколько я понимаю, вы хотите отобразить "{текст из div} = bar"? Если это так, приведенный ниже код работает для меня как в FF, так и в IE:

<html>
<head>
 <title>Hello</title>
 <script type="text/javascript" src="jquery-1.3.2.min.js"></script>
 <script type="text/javascript"> 
  $(document).ready(function()
  {
   $("#foo").val('bar');
   alert(($(".myDiv").text()) + ($("#foo").val()));
  });
 </script>
</head>
<body>
 <div class='myDiv'>
  Value = <input type='text' id='foo' size='30' />
 </div>
</body>
</html>
0 голосов
/ 05 декабря 2009

Почему бы просто не скопировать свойство value ввода в его атрибут перед генерацией innerHTML? Обратите внимание, что это изменит эффект любой кнопки сброса типа, которую вы можете иметь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...