Изменить часть атрибута якорной ссылки с помощью JavaScript - PullRequest
1 голос
/ 21 июля 2011

Я пытаюсь изменить среднюю часть URL, когда нажата соответствующая кнопка.

В трех ссылках на покупку каждая представляет собой сумму. Я собираюсь выбрать животное, а затем нажать на 1 из 3 сумм, которые я хочу потратить. Как бы я изменил часть всех 3-х URL-адресов?

Как я могу это сделать? Это переключатели (с JavaScript):

<input type="radio" name="orderID" 
    value="-DOL&linkID=naib&url=https%3A//example.com/List%3FlinkID%3Dnaib"
    onclick="document.getElementById('editBTN').href=this.value">
    Dolphin
</input>
<input type="radio" name="orderID" 
    value="-SHK&linkID=naib&url=https%3A//example.com/List%3FlinkID%3Dnaib"
    onclick="document.getElementById('editBTN').href=""+this.value">
    Shark
</input>

И ссылки на покупку (250 $, 100 $ и 50 $ соответственно):

<a id="editBTN" href="http://example.com/Info?ticketCode=%XX%3A%Q250">Purchase</a>
<a id="editBTN" href="http://example.com/Info?ticketCode=%XX%3A%Q100">Purchase</a>
<a id="editBTN" href="http://example.com/Info?ticketCode=%XX%3A%Q50">Purchase</a>

DOL - это единственная деталь, которую необходимо изменить.

Ответы [ 5 ]

2 голосов
/ 21 июля 2011

Если вы собираетесь переименовать идентификаторы на своих кнопках, чтобы они были уникальными, сделайте функцию:

<script type="text/javascript">
    function setAnimal(obj) {
        var baseURL="http://ev8.evenue.net/cgi-bin/ncommerce3/SEGetEventInfo?ticketCode=%3ANAIB%3A%3AAQ";
        document.getElementById('editBTN1').href=baseURL+"250&"+obj.value;
        document.getElementById('editBTN2').href=baseURL+"100&"+obj.value;
        document.getElementById('editBTN3').href=baseURL+"50&"+obj.value;
    }
</script>

, а затем с помощью переключателей выполните:

onclick="setAnimal(this);"
1 голос
/ 21 июля 2011
0 голосов
/ 21 июля 2011
onclick="javascript:document.getElementById('editBTN').href=this.value">
0 голосов
/ 21 июля 2011

с jquery или другой библиотекой синтаксического анализа dom это должно быть возможно.

if ( /* radio selected */ ) {

    // Go get your src attrib
    var src = jQuery( 'selectorforanchortag' ).attr('src');
    // Manipulate the src however you need using javascript string methods
    src = src.blergetyblerg();
    // Put your new src back where orig was
    jQuery( 'selectorforanchortag' ).attr('src');

}
0 голосов
/ 21 июля 2011

Там нет средней части, используйте регулярные выражения, чтобы вырезать строку и использовать ту, которую вы хотите.Изменить его довольно просто:

var edBTN = getElementById('editBTN');
edBTN.setAttribute('href', mynewurl);
...