javascript - 如何让我的 JavaScript 在中继器中工作?

标签 javascript c# asp.net substring

我有一个使用中继器的 asp.net 项目。

<asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1">
        <HeaderTemplate>
            <asp:label ID="lblexp" runat="server" Text="05/11/1981" Visible="false"></asp:label>
        </HeaderTemplate>
        <ItemTemplate>                
            <div id="myNest" class="grid">
            <div class="imgholder">
                <img src="<%# Eval("ImageAlt1")%>" />
            </div>        
            <strong><%# Eval("ItemName")%> <bdo style="color:green;">$<%# Eval("ItemPrice")%></bdo></strong>
            <p class="test"><%# Eval("ItemDescription")%></p>
            <div style="color:red; font-size:small;"><asp:Label ID="lblExp" Text='<%# Bind("CreateDate") %>' runat="server" /></div>
            <div class="meta"><%# Eval("Email")%></div>
            </div>
        </ItemTemplate>
        <FooterTemplate>
            <asp:label ID="lblexp" runat="server" Text="05/11/1981" Visible="false"></asp:label>
        </FooterTemplate>

和一些 JavaScript 来缩短 ItemDescription

<script type="text/javascript">
    var after = 5;
    var html = $(".grid p.test").html();
    html = html.substring(0, after) + "<span> ...</span>";
    $(".grid p.test").html(html);
</script>

无论出于何种原因,javascript 都无法看到中继器中的项目。我该如何解决这个问题?

错误为未捕获类型错误:无法读取未定义的属性子字符串

最佳答案

这里有两个可能的问题:

  1. JS 在渲染相关标记之前运行。要解决这个问题,只需将您的 js 包装在某种文档加载处理程序中即可:

    $(function() {
        var after = 5;
        var html = $(".grid p.test").html();
        html = html.substring(0, after) + "<span> ...</span>";
        $(".grid p.test").html(html);
    });
    
  2. html() 调用为您提供选择器匹配列表中第一项的内部 html。您可能会对所有找到的项目执行此操作,在这种情况下,请将 html 操作放在 each() 中。顺便说一句,请考虑使用 text 而不是 html,它看起来与您的情况更相关。

关于javascript - 如何让我的 JavaScript 在中继器中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32254629/

相关文章:

javascript - 如何使用单个回调异步排队和执行多个 Promise?

javascript - 具有回调和完成功能的 jQuery

javascript - 检测用户滚动了多少

c# - 从 SQL Server 数据库中获取 1 个单元格的更简单方法

c# - 如何加入重叠的圈子?

c# - 为什么 Environment.SpecialFolder.Desktop 是空的

c# - 在 ajax 调用中从 javascript 引发服务器端按钮单击事件

C# 从某个索引递归列表

c# - 业务逻辑中的 Entity Framework 最佳实践?

asp.net - 如何确定从我的 native asp.net 应用程序或 WCF 服务调用的方式