Замените href на jQuery, регулярное выражение - PullRequest
0 голосов
/ 17 августа 2011

У меня есть несколько ссылок на href, которые необходимо заменить:

<a id="link" href="http://localhost:8091/tabid/99/catid/8/page1.aspx">Page1</a>
<a id="link" href="http://localhost:8091/tabid/98/catid/8/page1.aspx">Page1</a>
<a id="link" href="http://localhost:8091/tabid/97/catid/8/page1.aspx">Page1</a>

Значение href следует изменить на: "http://localhost:8091/tabid/1/catid/8/page1.aspx"

При поиске я обнаружил:

$(document).ready(function () {
    $("#link").each(function () {
        this.href = this.href.replace("99", "1");
    });
});

Это должно сработать. Однако оно заменяет только одну из ссылок. Может ли кто-нибудь помочь мне с регулярным выражением здесь? Мне нужно изменить все числа в tabid/**/catid на " 1 ".

Ответы [ 4 ]

1 голос
/ 17 августа 2011

Ваша проблема заключается в использовании id для доступа к нескольким элементам: id, согласно спецификации , должны быть уникальными в документе ,Использование id заставляет JavaScript возвращать первый найденный элемент вместо продолжения поиска в документе (поскольку должен быть только одним).

Комуиспользуйте одно и то же имя для нескольких элементов, используйте вместо него class:

<a class="link" href="http://localhost:8091/tabid/**99**/catid/8/page1.aspx">Page1</a>
<a class="link" href="http://localhost:8091/tabid/**98**/catid/8/page1.aspx">Page1</a>
<a class="link" href="http://localhost:8091/tabid/**97**/catid/8/page1.aspx">Page1</a>

С исправленным jQuery:

$(document).ready(function () {
    $(".link").each(function () {
        this.href = this.href.replace("99", "1");
    });
});
1 голос
/ 17 августа 2011

Атрибут id указывает уникальный идентификатор для элемента HTML. В вашем случае они не уникальны. Попробуйте использовать css-селекторы или выберите все элементы «a»

0 голосов
/ 17 августа 2011

Сначала измените id на класс. Во-вторых, сделайте это изменение:

this.href = this.href.replace(/tabid\/\d+/i, '/tabid/1');

Теперь он заменяет только цифры после табида, а не просто любое число в строке.

0 голосов
/ 17 августа 2011

Идентификатор в документе уникален, вместо него следует использовать класс.

...