每次更改选择框时,如何才能更改值?

时间:2015-05-21 01:00:18

标签: jquery function select

脚本如何工作:当运行此脚本时,它会从选择框(#artist)中的选项中获取id#(示例123),并将该数字放在具有updategallerylink类的基本链接的末尾。所以我最终得到这样的链接:domain.com/artist/123 /)

问题是,如果我选择选项1(123)然后选择选项2(234),它实际上会吐出一个链接,该链接显示domain.com/artist/123/234/何时应该只吐出domain.com /艺术家/ 234 /.

我不希望它从#artist堆叠变量,而是每次选择不同的选项时用正确的id#替换它。

<script type="text/javascript">
$(function()  {

  $('.updategallerylink').click(function()  {
    var searchString = $('#artist').val();
    var searchLink = $(this).attr('href');
    $(this).attr('href', searchLink+searchString+'/');
  });

});
</script>

<select name="artist" id="artist" style="width: 200px; background: black;" class="required">
            <option value="123">Artist 1</option>
            <option value="234">Artist 2</option>
        </select>
<a href="/artist/" id="gallerylink" class="updategallerylink" title="Artwork Gallery" target="_blank">gallery</a>

1 个答案:

答案 0 :(得分:3)

您可以将原始href保存为数据,然后只将艺术家附加到原始href,如下所示:

<script type="text/javascript">
$(function()  {

  $('.updategallerylink').click(function()  {
    if(!$(this).data('orig-href')) {
        // Store the original href
        $(this).data('orig-href', $(this).attr('href'));
    }

    var searchString = $('#artist').val();
    var searchLink = $(this).data('orig-href');
    $(this).attr('href', searchLink + searchString + '/');
  });

});
</script>

演示:http://jsbin.com/gigami/4/