Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更改href属性_Javascript_Jquery - Fatal编程技术网

Javascript 更改href属性

Javascript 更改href属性,javascript,jquery,Javascript,Jquery,需要更改此href的一部分: <a href="media/xxxxx-yyy.jpg">large pic</a> 我有一些设计和一些颜色,xxxxx代表designnumber,yyy代表colornumber,单击其中一个设计或href应该使用的颜色时 根据值进行更改: <a href="#">design1</a> <a href="#">design2</a> <a href="#">design

需要更改此href的一部分:

<a href="media/xxxxx-yyy.jpg">large pic</a>

我有一些设计和一些颜色,xxxxx代表designnumber,yyy代表colornumber,单击其中一个设计或href应该使用的颜色时 根据值进行更改:

<a href="#">design1</a>
<a href="#">design2</a>
<a href="#">design3</a>

<a href="#">color1</a>
<a href="#">color2</a>
<a href="#">color3</a>


使用JQuery有什么方法可以做到这一点吗?

您的变量链接将是:

<a id="colorLink" href="media/xxxxx-yyy.jpg">large pic</a>

您可能希望向colorLink标记
onclick
事件添加一些验证,以检查designNumber和colorNumber是否具有有效值,如果没有,则取消事件并向用户发送消息,告知他们需要选择有效的设计和颜色。最好是创建一个Get Design按钮,禁用启动,并在UpdateActionLink中检查这些值是否有效,如果有效,则启用Get Design按钮。

在链接中添加一个类,比如说myClass,在主链接上添加一个ID,比如说myLink,这样应该可以:

$('.myClass').each(function(el) {
    el.bind('click', function(event) {
         $('myLink')attr('href', el.text());
    }
});

您可以使用attr方法读取和修改href

html:


解析旧值不是防弹的。您可以通过创建两个变量来保存设计和颜色来避免这种情况。

为了尽量减少DOM查询的数量,您可以将当前的颜色和设计存储在一个对象中

function DesignSwitcher() {
    var params = $("#largePic").attr("id").split["-"],
        des = params[0],
        col = params[1];
    $(".design").click(function() {
       des = this.innerHTML;
       $("#largePic").attr("href", "media/" + des + "-" + col + ".jpg");
    });
    $(".color").click(function() {
       col = this.innerHTML;
       $("#largePic").attr("href", "media/" + des + "-" + col + ".jpg");
    });

}

new DesignSwitcher();

这些答案在哪里有用?
$('.myClass').each(function(el) {
    el.bind('click', function(event) {
         $('myLink')attr('href', el.text());
    }
});
<a id="LargePic" href="media/xxxxx-yyy.jpg">large pic</a>

<a class="design" href="#">design1</a>
<a class="design" href="#">design2</a>
<a class="design" href="#">design3</a>

<a class="color" href="#">color1</a>
<a class="color" href="#">color2</a>
<a class="color" href="#">color3</a>
$(".design").click(function() {
  var old = $("#LargePic").attr("href");
  var pos = old.indexOf('-');
  val color = old.substr(pos, 3);
  $("#LargePic").attr("href", "media/" + $(this).text() + "-" + color + ".jpg");
});
function DesignSwitcher() {
    var params = $("#largePic").attr("id").split["-"],
        des = params[0],
        col = params[1];
    $(".design").click(function() {
       des = this.innerHTML;
       $("#largePic").attr("href", "media/" + des + "-" + col + ".jpg");
    });
    $(".color").click(function() {
       col = this.innerHTML;
       $("#largePic").attr("href", "media/" + des + "-" + col + ".jpg");
    });

}

new DesignSwitcher();