Javascript 使用jquery从哈希值获取动态类名
我有一个选项卡集,每个选项卡都有唯一的id。每个选项卡中的上载按钮都有一个具有唯一类名的函数。所以我想获取散列值来动态地构建一个新的类名。与我构建的函数一起使用 例如:Javascript 使用jquery从哈希值获取动态类名,javascript,jquery,hash,Javascript,Jquery,Hash,我有一个选项卡集,每个选项卡都有唯一的id。每个选项卡中的上载按钮都有一个具有唯一类名的函数。所以我想获取散列值来动态地构建一个新的类名。与我构建的函数一起使用 例如: URL : www.myweb.com/upload.php#tab1 jS var hash=location.hash;//grab hash = tab1 $('.upload_'.hash).uploadPic({//expect className= '.upload_tab1' . . . }); html &l
URL : www.myweb.com/upload.php#tab1
jS
var hash=location.hash;//grab hash = tab1
$('.upload_'.hash).uploadPic({//expect className= '.upload_tab1'
.
.
.
});
html
<button id="upload_tab1">Browse</button>
浏览
我试过了,但由于某些原因它不起作用。没有错误,什么都没有。请提供帮助。正如其他人提到的,您需要使用
+
而不是
来连接JavaScript中的字符串
但是,这仍然无法解决您的问题,因为window.location.hash
返回的值包含片段前面的hash(#
)符号:
const hash = window.location.hash; // value is "#tab1"
所以你需要去掉散列符号:
const hash = window.location.hash.substring(1); // value is "tab1"
为了防止在未指定片段的情况下出错,您可能需要首先检查哈希符号的存在:
let hash = window.location.hash;
hash = hash.startsWith('#') ? hash.substring(1) : hash;
使用
+
将js中的字符串压缩为非
仍不工作,@guradio若要添加类,请使用类似$('.upload_')。addClass(hash)
@guradio,我现在知道了。因为location.hash
给了我#tab1
。因此,类名是upload#tab1
,而不是upload#tab1
。因此,我改为window.location.hash.substr(1)
,它只给我值。是的,因为?这是有效的,只需更改获取哈希值的方式并切断#
!每个按钮中都有数据属性。但它不是由脚本执行的:Browse
。我使用ajax获取数据:formData:{“cate”:$(this.attr(“data cate”),“size”:$(this.attr(“data size”)},
,但它不会通过表单传递。有什么想法吗?最好问一个新问题并添加相关代码。这可能有助于: