遍历每个提到的ul的li

时间:2016-08-06 13:27:32

标签: javascript jquery

这是一个简单的代码 -

var ulreq = $("#abc").children("ul.ghi");
var lists = ulreq.find("li");
for( var i = 0; i < lists.length; ++i){
	alert(lists[i].text());
	//show show the values in these li
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="abc">
	<ul class="def">
		<li>a</li>
		<li>b</li>
		<li>c</li>
	</ul>
	<ul class="ghi">
		<li>d</li>
		<li>e</li>
		<li>f</li>
	</ul>
</div>
<div id="lkj">
	<ul class="def">
		<li>g</li>
		<li>h</li>
		<li>i</li>
	</ul>
	<ul class="ghi">
		<li>j</li>
		<li>k</li>
		<li>l</li>
	</ul>
</div>

它应该弹出 d Ë F 我没有得到我错的地方..请检查 提前完成。

sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss

1 个答案:

答案 0 :(得分:1)

问题在于:

alert(lists[i].text());

当您索引到jQuery对象时,您正在访问原始DOM元素。原始DOM元素没有text方法。这就是你的浏览器告诉你的时间:

  

Uncaught TypeError: lists[i].text is not a function

你要么

alert($(lists[i]).text());

alert(lists.eq(i).text());

以下是后者:

var ulreq = $("#abc").children("ul.ghi");
var lists = ulreq.find("li");
for( var i = 0; i < lists.length; ++i){
	alert(lists.eq(i).text());
	//show show the values in these li
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="abc">
	<ul class="def">
		<li>a</li>
		<li>b</li>
		<li>c</li>
	</ul>
	<ul class="ghi">
		<li>d</li>
		<li>e</li>
		<li>f</li>
	</ul>
</div>
<div id="lkj">
	<ul class="def">
		<li>g</li>
		<li>h</li>
		<li>i</li>
	</ul>
	<ul class="ghi">
		<li>j</li>
		<li>k</li>
		<li>l</li>
	</ul>
</div>