迭代每个并包含在jquery中

时间:2013-09-20 08:27:52

标签: jquery

鉴于此html标记

                <tr>
                    <td class="tdDescCell"><b><i>Product Savings:&nbsp;&nbsp;</i></b></td>
                    <td class="tdDescCell"><b><i>&nbsp;&nbsp;<asp:Label ID="lblEBSavings_Q1" Text="" cssClass="labelValueCalc" runat="server" ClientIDMode="Static"></asp:Label></i></b></td>
                    <td class="tdDescCell"><b><i>&nbsp;&nbsp;<asp:Label ID="lblEBSavings_Q2" Text="" cssClass="labelValueCalc" runat="server" ClientIDMode="Static"></asp:Label></i></b></td>
                    <td class="tdDescCell"><b><i>&nbsp;&nbsp;<asp:Label ID="lblEBSavings_Q3" Text="" cssClass="labelValueCalc" runat="server" ClientIDMode="Static"></asp:Label></i></b></td>
                    <td class="tdDescCell"><b><i>&nbsp;&nbsp;<asp:Label ID="lblEBSavings_Q4" Text="" cssClass="labelValueCalc" runat="server" ClientIDMode="Static"></asp:Label></i></b></td>
                </tr>

呈现类似

                 <tr>
                    <td class="tdDescCell"><b><i>Product Savings:&nbsp;&nbsp;</i></b></td>
                    <td class="tdDescCell"><b><i>&nbsp;&nbsp;<span id="lblEBSavings_Q1" class="labelValueCalc"></span></i></b></td>
                    <td class="tdDescCell"><b><i>&nbsp;&nbsp;<span id="lblEBSavings_Q2" class="labelValueCalc"></span></i></b></td>
                    <td class="tdDescCell"><b><i>&nbsp;&nbsp;<span id="lblEBSavings_Q3" class="labelValueCalc"></span></i></b></td>
                    <td class="tdDescCell"><b><i>&nbsp;&nbsp;<span id="lblEBSavings_Q4" class="labelValueCalc"></span></i></b></td>
                </tr>

我使用以下jquery来设置标签文本,这看起来非常冗余和草率。

             $("#lblEBSavings_Q1").text("$" + ebSavingsQtrly.toString());
             $("#lblEBSavings_Q2").text("$" + ebSavingsQtrly.toString());
             $("#lblEBSavings_Q3").text("$" + ebSavingsQtrly.toString());
             $("#lblEBSavings_Q4").text("$" + ebSavingsQtrly.toString());

我尝试使用每个重构并包含如下行,

$("#fld_ROICalcOutput > span").contains("lblEBSavings").each().text("$" + ebSavingsQtrly.toString());

其中#fld_ROICalcOutput是表的父fieldset元素。我在哪里错了,是否有更好的方式表达我想在这里完成的事情。

3 个答案:

答案 0 :(得分:2)

我认为您定位的是span元素,其中包含lblEBSavings类,在这种情况下,无需使用.each()

$('.labelValueCalc[id^="lblEBSavings"]').text("$" + ebSavingsQtrly.toString())

答案 1 :(得分:0)

尝试使用以下各项功能:

$.each($("#fld_ROICalcOutput > span").contains("lblEBSavings"), function(){
   $(this).text("$" + ebSavingsQtrly.toString());
});

您还应该尝试console.log( $("#fld_ROICalcOutput > span").contains("lblEBSavings") );以确保选择器有效。

答案 2 :(得分:0)

怎么样:

$("#fld_ROICalcOutput[id^=lblEBSavings]").each(function() {
   $(this).text("$" + ebSavingsQtrly.toString());
}