用JavaScript更改锚链接属性的一部分

Change part of an anchor link attribute with JavaScript

本文关键字:属性 一部分 链接 JavaScript      更新时间:2023-09-26

我试图改变URL的中间部分,当适当的单选按钮被点击。

在三个购买链接中,每个链接代表一个金额。我将选择一种动物,然后点击我想要花费的3个金额中的1个。我该如何更改这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部分是唯一需要修改的部分

如果你要重命名你的按钮的Id是唯一的,创建一个函数:

<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);"
onclick="document.getElementById('editBTN').href='http://ev8.evenue.net/cgi-bin/ncommerce3/SEGetEventInfo?ticketCode=%3ANAIB%3A%3AAQ250'+this.value;"

没有中间部分,使用正则表达式,来切割字符串并使用您想要的字符串。修改它很容易:

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

使用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');
}
onclick="javascript:document.getElementById('editBTN').href=this.value">