Javascript JS:从下拉菜单获取值以替换部分HREF字符串

Javascript JS:从下拉菜单获取值以替换部分HREF字符串,javascript,jquery,html,href,onchange,Javascript,Jquery,Html,Href,Onchange,我试图使用jQuery在下拉菜单中获取所选项目的值,并使用该值替换所有锚定链接的特定部分,这些锚定链接在其href值中包含该字符串。我已经建立了一个,我还包括下面的相关标记和JS 基本上,如果下拉菜单中所选的的值是“handle1”,例如,我希望迭代某个类的父元素的所有链接,并用该值替换“SelectedHandle”占位符文本 $(文档).ready(函数(){ //定义变量 var下拉列表=$(“#选项”), 网格=$('.row-grid'); //获取所选项目的值(句柄) 关于('ch

我试图使用jQuery在下拉菜单中获取所选项目的值,并使用该值替换所有锚定链接的特定部分,这些锚定链接在其
href
值中包含该字符串。我已经建立了一个,我还包括下面的相关标记和JS

基本上,如果下拉菜单中所选的
的值是“handle1”,例如,我希望迭代某个类的父元素的所有链接,并用该值替换“SelectedHandle”占位符文本

$(文档).ready(函数(){
//定义变量
var下拉列表=$(“#选项”),
网格=$('.row-grid');
//获取所选项目的值(句柄)
关于('change',function()的下拉列表{
var handle=$(this.val();
变量链接=$('.将此设置为动画a');
links.each(函数(){
this.href=this.href.replace('SelectedHandle',handle);
});
//选择时显示div
如果(句柄!==0){
removeClass('hide-by-default');
}
});
});

在下面选择
第一人
第二人
第三人

当您第一次在选择下拉列表中更改句柄时,href中的“SelectedHandle”字符串将替换为“handle1”或“handle2”等字符串

因此,当您第二次或第三次更改select下拉列表中的句柄时,href中将没有要替换的“SelectedHandle”字符串。 因此,href不会改变

我建议对URL中的空格进行编码(href标记),因为一些浏览器会将URL中的空格转换为“%20”,而其他浏览器会将它们转换为“+”。 因此,将href标记内的空格替换为“%20”

我对你的代码做了2处更改

  • 在HTML代码中,使用“%20”转换href标记内的空格
  • 在JS代码中,请参阅“在href内替换句柄”块 请尝试(运行)下面的代码段。 我相信它能如你所期望的那样工作

    $(文档).ready(函数(){
    //定义变量
    var下拉列表=$(“#选项”),
    网格=$('.row-grid');
    //获取所选项目的值(句柄)
    关于('change',function()的下拉列表{
    var handle=$(this.val();
    变量链接=$('.将此设置为动画a');
    //更换内把手href
    links.each(函数(){
    $trim_start=(this.href).substr(
    (this.href).indexOf(“%40”)+3
    );
    $trim\u end=$trim\u start.substr(
    0,$trim_开头.indexOf(“%20”)
    );
    $replace_string=$trim_end;
    this.href=this.href.replace($replace_字符串,句柄);
    });
    //选择时显示div
    如果(句柄!==0){
    removeClass('hide-by-default');
    }
    });
    });
    
    div,
    img{
    显示:块;
    填充:0;
    保证金:0;
    }
    挑选{
    边缘底部:25px;
    }
    。默认情况下隐藏{
    显示:无;
    }
    .col-6{
    边缘底部:25px;
    }
    
    在下面选择
    第一人
    第二人
    第三人
    
    感谢您的回复,但我不确定这种方法是否有效-我基本上只想根据下拉列表的值更改每条Twitter消息的句柄占位符文本-因此,所有消息保持不变,只是句柄更改。你知道为什么我的原始版本只适用于第一选择吗?谢谢!实际上,我最终选择了另一条路线,在锚中使用
    data msg
    属性,然后将所选句柄附加到每条消息以生成最终链接。不过你的方法也很有效,谢谢。