<div id="element_id">hellow world</div>
var value = $('#element_id').html()
有时会返回"hello world"
,但并非总是如此。 val()
始终有效,但不是html()
这只发生在firefox中(始终在Chrome中运行)。有什么想法吗?
修改 还没有弄清楚问题,但是一旦找到它我就会发布结论!谢谢你的回复。
答案 0 :(得分:0)
我认为this上一个问题可能会对您有所帮助。
P.S。当你说它有时工作但有时不工作时,div的内容是否有一些变化?
答案 1 :(得分:0)
您可以尝试将其包装到超时...
function sayHello() {
var someContent = $('#element_id').html();
alert(someContent);
}
setTimeout('sayHello()', 500);
看看它是否过早收到内容?
答案 2 :(得分:0)
这使用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标签包围的文本。
答案 3 :(得分:0)
完整的未经修改的代码供您尝试:
<!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>