Функция .html()
работает, когда элемент отображается. но когда я добавляю style="display:none"
, функция html() ничего не возвращает. Есть ли обход этой проблемы? благодаря?jQuery .html() не работает со скрытыми divs?
ответ
Это работа, посмотреть демо http://jsfiddle.net/jNLqA/
<div style="display: none">
<p>Test</p>
</div>
<pre></pre>
и
$('pre').text($('div').html());
, кажется, работает очень хорошо для меня: http://jsfiddle.net/petersendidit/wgQpg/
это работает (дисплей зашиты):
<div id='blah' style="display:none">something</div>
<script type='text/javascript' src='jquery.js'></script>
<script type='text/javascript'>
$(document).ready(function() {
alert($('#blah').html());
});
</script>
и так ли это (изменение его с JQuery):
<div id='blah'>something</div>
<script type='text/javascript' src='jquery.js'></script>
<script type='text/javascript'>
$(document).ready(function() {
$('#blah').attr('style','display:none');
alert($('#blah').html());
});
</script>
и это тоже работает (изменение его ж/JQuery другой способ):
<div id='blah'>something</div>
<script type='text/javascript' src='jquery.js'></script>
<script type='text/javascript'>
$(document).ready(function() {
$('#blah').hide();
alert($('#blah').html());
});
</script>
ооочень ... нужно больше информации/контекст от вас
EDIT (ДОПОЛНЕНО):
пример кода на основе свой комментарий ... опять же, это работает:
<?php
class blah {
var $element_type;
var $content;
}
$field = new blah();
$field->element_type = 'div';
$field->content = 'something';
?>
<<?php print $field->element_type; ?> class="field-content accordionContent" style="display:none"><?php print $field->content; ?></<?php print $field->element_type; ?>>
<script type='text/javascript' src='jquery.js'></script>
<script type='text/javascript'>
$(document).ready(function() {
alert($('div').html());
});
</script>
Возможно, есть что-то в поле $ field->, которое разбивает ваш html? отсутствующий закрывающий тег или цитата или что-то еще? Или, может быть, ваш селектор jquery не блестящий? Как выглядит ваш селектор?
Дополнительная информация в комментарии к моему сообщению. Благодарю. – user194076
добавлено обновление на основе вашего комментария –
Я хотел опубликовать здесь, так как я также обнаружил, что .html не сможет получить значение скрытого элемента, если элемент выше страницы, чем код jQuery.
Если я создаю видимый элемент, тогда код работает так, как ожидалось, или если я перемещаю элемент под jQuery, то он также работает.
Это, кажется, ответ, по крайней мере для меня.
Итак, самое простое исправить - это просто переместить код jQuery над скрытым элементом, тогда .html, похоже, работает с скрытым элементом.
Похоже, что это может быть ошибка в jQuery, поскольку это довольно странное поведение. Также, если я использую метод jQuery .hide, чтобы скрыть элемент на загрузке страницы, а затем .show, чтобы показать его, прежде чем получить значение, которое оно по-прежнему терпит неудачу, если элемент выше, чем еще незнакомец.
Робин
У меня была проблема при использовании идентификатор, изменен класс и все работало нормально
- 1. Страницы страниц google со скрытыми divs?
- 2. Отдельный HTML-файл со скрытыми divs по умолчанию пустым
- 3. JQuery Tablesort со скрытыми строками?
- 4. DataAnnotations не работает со скрытыми вкладками
- 5. Сортировка со скрытыми столбцами слева не работает
- 6. ленивый нагрузки не работает со скрытыми элементами
- 7. Проблема с jQuery-логикой со скрытыми и скрытыми объектами asp
- 8. jQuery: анимация со скрытыми полями ввода
- 9. три колонки с скрытыми divs
- 10. jQuery SlideUp в строке со скрытыми столбцами
- 11. JQuery Таблица зебра со скрытыми строками
- 12. Обработка строк + перевалы (HTML) со скрытыми элементами в JS
- 13. Zend_Navigation со скрытыми страницами
- 14. RedirectRequestTarget со скрытыми параметрами?
- 15. Подтвердить форму со скрытыми полями
- 16. Перечислитель со скрытыми опциями
- 17. jquery .html не работает со сценарием
- 18. Различное поведение со скрытыми элементами html в разных браузерах
- 19. javascript получить размер элемента со скрытыми родителями
- 20. Список со скрытыми элементами «preended» li
- 21. Не удается наследовать интерфейс со скрытыми методами
- 22. сокращение javascript с несколькими скрытыми/шоу divs
- 23. Расширение класса со скрытыми конструкторами
- 24. jQuery меню аккордеона - проблема со скрытыми подменю по умолчанию
- 25. Модуль Android со скрытыми классами
- 26. Упорядоченный список со скрытыми входами
- 27. Отображение строки со скрытыми символами
- 28. стилизованной навигация со скрытыми ссылками
- 29. команда excel со скрытыми строками
- 30. Скрипт входа со скрытыми кнопками
Я думаю, что вы не правы. Функция 'html' должна работать независимо от CSS. – tvanfosson
Это не ваша проблема. Можете ли вы добавить какой-то контекст или селектор, который вы используете? – meagar
Мне кажется, вам нужно опубликовать код, который дает вам ошибку. Я могу отобразить: none a div и все равно получить $(). Html(), чтобы вернуть содержимое html, без проблем. –