jquery - 每次更改选择框时如何获取更改的值?

标签 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>

最佳答案

您可以将原始 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/

关于jquery - 每次更改选择框时如何获取更改的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30362828/

相关文章:

jquery显示元素问题

javascript - 在 iOS 上缓慢移动 html 元素位置

javascript - 在 HTML 复选框上访问数组的键

c++ - 在不提供参数类型的情况下绑定(bind)函数

function - 根据类型为泛型函数提供不同的函数体

c++ - 如何修复错误 "was not declared in this scope"?

javascript - 如何为 Material ui 选择字段设置值?

javascript - fancyBox3 - 如何在单击打开的图像时禁用缩放

mysql - 多个表(一个是子查询)连接

mysql - 我只需选择表格中出现的一次破折号