Проблема JQuery с firefox: $ ('# element_id'). Html () не работает - PullRequest
2 голосов
/ 29 января 2011

<div id="element_id">hellow world</div>

var value = $('#element_id').html() 

возвращает "hello world" иногда, но не всегда.val() всегда работает, но не html() Это происходит только в Firefox (всегда работает в Chrome).Любые идеи?

РЕДАКТИРОВАТЬ Все еще не выяснил проблему, но я опубликую заключение, как только я его нашел!Спасибо за ответы.

Ответы [ 4 ]

0 голосов
/ 01 февраля 2011

Полный неизмененный код, который вы можете попробовать:

<!doctype html>
<html lang="pt-br">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <style type="text/css">
            p {color:#4f4}
            code {color:#999;font-family:monospace;font-size:14px}
        </style>
        <script type="text/javascript" src="libraries/jquery-1.4.4.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function(){
                function showhtml(n) {
                    //1 for html 0 for text
                    if(n == 1) {
                        var eid = $('div.eid').html();
                        alert(eid);
                        $('code.status').html(eid);
                    } else if(n == 0 || n == null) {
                        var eid = $('div.eid').text();
                        alert(eid);
                        $('code.status').text(eid);
                    }
                }
                showhtml();
            });
        </script>
        <title>jQuery html() text()</title>
    </head>
    <body>
        <div class="eid">
            <p>1 ajfdlk jaldkfjdksljfkldjlfkjal;fd</p>
            <em>2 ajd;fjal;kdjf</em>
        </div>
        <br />
        <hr />
        <code class="status"></code>
    </body>
</html>
0 голосов
/ 31 января 2011

Вы можете попробовать обернуть его в таймаут ...

function sayHello() {
  var someContent = $('#element_id').html();
  alert(someContent);
}

setTimeout('sayHello()', 500);

Посмотри, слишком ли рано он получает контент?

0 голосов
/ 01 февраля 2011

Это работало с использованием jQuery 1.4.4. Я не тестировал другие версии.

    $(document).ready(function(){
        function showhtml() {
            var eid = $('div.eid').html();
            alert(eid);
            $('code.status').html(eid);
        }
        showhtml();
    });

Помните, что .text вернет только текст внутри div, а .html вернет текст, окруженный тегами html.

0 голосов
/ 29 января 2011

Я думаю этот предыдущий вопрос может вам помочь.

PS Когда вы говорите, что это иногда работает, а иногда не работает, происходят ли какие-то изменения в содержимом div?

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