为啥jQuery在输出html代码后下面的内容不再执行了

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥jQuery在输出html代码后下面的内容不再执行了相关的知识,希望对你有一定的参考价值。

近期在学习jQuery,跟着书上的代码在练习,就是在我想输出ul的html代码的时候,下面的输出却不执行了。希望高手给个好理解的解答,不胜感激。
<script type="text/javascript" src="../scripts/jquery-1.3.1.js"></script>
<script type="text/javascript">
$(document).ready(function()
var $ul = $("ul").children();
alert("ul").html();
for(var i = 0; i < $ul.length; i++)
alert($ul[i].innerHTML);

);
</script>
</head>
<body>
<p title="选择你最喜欢的水果." >你最喜欢的水果是?</p>
<ul>
<li title='苹果'>苹果</li>
<li title='橘子'>橘子</li>
<li title='菠萝'>菠萝</li>
</ul>
</body>

alert("ul").html()
目测是这句出错了
你的意思应该是希望打印<ul>节点的innerHtml?
那么应该是: alert($("ul").html());
还有,jquery元素和js元素请不要混用,容易出问题
$ul = $("ul).children() 这里的 $ul是一个jquery元素
因此:$ul[i].innerHTML 最好改成 $ul[i].html()
还有,既然用jquery就要用的彻底,不要再用for循环了
试试jquery的 .each(),再回头来看现在的for,是不是觉得for实在很逊?

祝你好运 :)追问

非常感谢你的帮助 ,呵呵 ,说的太有用了。再请教你一个问题吧 还是上面的内容。
var $p1 = $("p");
alert( $p1.html() );
var $ul = $("ul");
alert( $ul.html() );
为什么一个弹出的是p标签里的内容,一个弹出的带有html标签呢?

追答

XXXX.html将会输出这个XXXX节点内的html内容
很明显
你的标签里面的内容是: 你最喜欢的水果是?
你的标签里面的内容是:苹果
橘子
菠萝

你得到的输出是这些,对吧 - -#

参考技术A 你alert("ul").html(); 这个写错了 alert($ul.html()); 这样才对 参考技术B 贴代码啊,要么就是代码有错误,阻塞了,要么就是你的代码就没有执行。 参考技术C alert($("ul").html());

以上是关于为啥jQuery在输出html代码后下面的内容不再执行了的主要内容,如果未能解决你的问题,请参考以下文章

为啥在 Jquery 中添加“阻止程序”类后我的事件绑定不再触发?

为啥html导入了jquery.js页面却没有加载?

jquery里怎么加入html源代码

为啥jQuery减法输出NaN?

为啥我不能使用 jquery 访问 ajax 拉取的内容 [重复]

css如何设置能让一个div元素覆盖在div元素上后下面的div元素中的文字不显示出来