Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jquery从哈希值获取动态类名_Javascript_Jquery_Hash - Fatal编程技术网

Javascript 使用jquery从哈希值获取动态类名

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

我有一个选项卡集,每个选项卡都有唯一的id。每个选项卡中的上载按钮都有一个具有唯一类名的函数。所以我想获取散列值来动态地构建一个新的类名。与我构建的函数一起使用

例如:

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”)},
,但它不会通过表单传递。有什么想法吗?最好问一个新问题并添加相关代码。这可能有助于: