0

我有一个 asp:bulletedlist 控件,它位于 div 标签内,我需要计算控件内的列表项的数量。搜索互联网,并注意到项目返回的 html 是一个列表,即<li>,我想我可以使用以下示例:

var listcontrol = document.getElementById('BulletedList1');
var countItems = listcontrol.getElementByTagName('li').length;

但是,当我这样做时,它会抛出错误并指出此控件不存在任何对象。

所以,我的问题是,因为我必须做这个客户端,因为我想用它来设置 div 标签的高度,你如何用javascript计算asp:bulletedlist控件中的项目数?

4

1 回答 1

1

您不能像使用它一样使用 document.getElementById,因为呈现时 Asp.Net 控件的实际 ID 与您为控件上的 ID 设置的 ID 不同。查看页面的来源,您将看到实际的 ID 是什么。然后,您可以根据需要使用它,并且此代码应该可以工作,但是如果您曾经移动过项目符号列表控件,它会中断,因为层次结构会改变。

另一种方法是使用 jQuery。在您的示例中,您可以这样做:

$('[id$=BulletedList1]').children('li').size()

这将选择以 'BulletedList1' 结尾的元素,获取 li 子元素,然后返回集合的大小。

于 2010-03-12T17:11:47.660 回答