使用asp:Repeater控件生成了以下内容(因此有重复的ID):

<span id="lblLocation1">
    <a href="/office.aspx?id=87">400 Westchester Avenue</a>,
    <a href="/office.aspx?id=89">56 Theall Road</a>,
    <a title="" href="/WorkArea/linkit.aspx?LinkIdentifier=id&amp;ItemID=1606">73 Market Street</a>,
    <a title="" href="/WorkArea/linkit.aspx?LinkIdentifier=id&amp;ItemID=1947">98 Huguenot Street</a>
</span>
<br />
<br />

<span id="lblLocation1">
    <a href="/office.aspx?id=87">400 Westchester Avenue</a>,
    <a href="/office.aspx?id=89">56 Theall Road</a>,
    <a title="" href="/WorkArea/linkit.aspx?LinkIdentifier=id&amp;ItemID=1606">73 Market Street</a>,
    <a title="" href="/WorkArea/linkit.aspx?LinkIdentifier=id&amp;ItemID=1947">98 Huguenot Street</a>
</span>
<br />
<br />

<span id="lblLocation1">
    <a href="/office.aspx?id=87">400 Westchester Avenue</a>,
    <a href="/office.aspx?id=89">56 Theall Road</a>,
    <a title="" href="/WorkArea/linkit.aspx?LinkIdentifier=id&amp;ItemID=1606">73 Market Street</a>,
    <a title="" href="/WorkArea/linkit.aspx?LinkIdentifier=id&amp;ItemID=1947">98 Huguenot Street</a>
</span>


小提琴:http://jsfiddle.net/s7LkoqdL/2/

结果应该是遍历lblLocation1范围内的每个锚点,并检查其是否符合条件并更新链接文本。

发生的是,它同时显示带有该变量的多个条目。

如何修改查询,使其遍历范围内的每个链接,并根据其是否符合条件进行更新,然后转到下一个链接,然后再转到下一个,依此类推...

注意:span条目越多,每个链接的乘积就越大。

最佳答案

我不会重写整个小提琴,因为它很乱。

您可以使用$('.pS span a').text(function)处理实例。 callback的第一个参数是元素索引,第二个参数是现有文本。仅根据条件return新文本

$('.pS span a').text(function (index, oldText) {

     if (oldText.indexOf("Theall") >-1) {
        return oldText + vCityState[4];
     }else if (oldText.indexOf("98") >-1) {
        return oldText + vCityState[2];
     }
});


我建议您创建一个对象数组,可以在每个实例中循环通过这些对象,以简化手动创建所有if条件的过程:

DEMO

10-05 20:42
查看更多