如何用JavaScript告诉页面中有多少数据主义者

How to tell how many datalists in page with JavaScript

本文关键字:多少 数据 主义者 何用 JavaScript      更新时间:2023-09-26

这是一个ascx页面,代码是在aspx。它将显示多个数据列表。如何通过JavaScript获得页面中数据主义者的数量?

<asp:DataList ID="TF_DataList" runat="server" RepeatDirection="Vertical" OnItemCreated="TF_Datalist_ItemCreated">
   <ItemTemplate>
      <table style="text-align:left;">
        <tr>
          <td valign="top" align="left" nowrap="nowrap">
            <asp:RadioButton ID="lbTrue" runat="server" GroupName="answers" Text="T" onclick="Radcheck();"
            />
            <asp:RadioButton ID="lbFalse" runat="server" GroupName="answers" Text="F" onclick="Radcheck();"
            />
          </td>
          <td>
            &nbsp;&nbsp;
          </td>
          <td runat="server" id="AnswerContentTD" style="text-align: left">
            <asp:Label ID="lblAnswerText" runat="server" Text='<%# Eval("AnswerText")%>'>
            </asp:Label>
          </td>
        </tr>
      </table>
   </ItemTemplate>
   <ItemStyle HorizontalAlign="Left">
   </ItemStyle>
</asp:DataList>

你能做的最好的事情就是绕过这个工作。给你页面上的每个数据列表一个CssClass="mydatalist"。请记住这些事情。

  1. 所有的asp:DataList必须有这个CssClass
  2. 只有asp:DataList必须有这个CssClass

Javascript实现。

function FindDataLists(){
    var datalists = document.getElementsByClassName("mydatalist");
    return datalists ? datalists.length : 0;
}
// fallback for LTE IE8
if (!document.getElementsByClassName) {
    document.getElementsByClassName = function (className, parentElement) {
        if (Prototype.BrowserFeatures.XPath) {
            var q = ".//*[contains(concat(' ', @class, ' '), ' " + className + " ')]";
            return document._getElementsByXPath(q, parentElement);
        } else {
            var children = ($(parentElement) || document.body).getElementsByTagName('*');
            var elements = [],
                child;
            for (var i = 0, length = children.length; i < length; i++) {
                child = children[i];
                if (Element.hasClassName(child, className)) elements.push(Element.extend(child));
            }
            return elements;
        }
    };
}

如果你正在使用jQuery

function FindDataLists(){
    var datalists = document.getElementsByClassName("mydatalist");
    return $(".").length;
}

<asp:DataList>不为自己生成任何html标签。因此,您只能定义页面上<table style="text-align:left;">元素的数量。为它们添加一个name属性,并对具有此名称的元素进行计数。