Javascript JS:从下拉菜单获取值以替换部分HREF字符串
我试图使用jQuery在下拉菜单中获取所选项目的值,并使用该值替换所有锚定链接的特定部分,这些锚定链接在其Javascript JS:从下拉菜单获取值以替换部分HREF字符串,javascript,jquery,html,href,onchange,Javascript,Jquery,Html,Href,Onchange,我试图使用jQuery在下拉菜单中获取所选项目的值,并使用该值替换所有锚定链接的特定部分,这些锚定链接在其href值中包含该字符串。我已经建立了一个,我还包括下面的相关标记和JS 基本上,如果下拉菜单中所选的的值是“handle1”,例如,我希望迭代某个类的父元素的所有链接,并用该值替换“SelectedHandle”占位符文本 $(文档).ready(函数(){ //定义变量 var下拉列表=$(“#选项”), 网格=$('.row-grid'); //获取所选项目的值(句柄) 关于('ch
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
属性,然后将所选句柄附加到每条消息以生成最终链接。不过你的方法也很有效,谢谢。