Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.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/82.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和特定条件在href url上添加参数_Javascript_Jquery - Fatal编程技术网

使用javascript和特定条件在href url上添加参数

使用javascript和特定条件在href url上添加参数,javascript,jquery,Javascript,Jquery,我的javascript函数有一些问题。我想在点击hrefurl时添加一些参数。例如,单击时,我想在hrefurl中添加?param=1。但在添加一些参数之前,我想检查href中的url是否为,并且该参数不包含?param=1。选中后,url为且不包含?param=1,我想在该url中添加?param=1。为什么我要在添加参数之前先检查?这是因为我不想在任何url中添加参数,只想在我想要的特定url中添加参数 这就是我到目前为止所做的: window.addEventListener("clic

我的
javascript
函数有一些问题。我想在点击
href
url时添加一些参数。例如,单击时,我想在
href
url中添加
?param=1
。但在添加一些参数之前,我想检查
href
中的url是否为,并且该参数不包含
?param=1
。选中后,url为且不包含
?param=1
,我想在该url中添加
?param=1
。为什么我要在添加参数之前先检查?这是因为我不想在任何url中添加参数,只想在我想要的特定url中添加参数

这就是我到目前为止所做的:

window.addEventListener("click", function(e) {
    var href = e.target.getAttribute("href");
    if(href) {
        location.href = href + "?param=1";
        e.preventDefault();
    }
});​

但是,如果
href
,我不知道如何检查并设置具体条件。请任何知道怎么做的人都能帮我。感谢您的光临。

了解indexOf以检查查询字符串中是否存在值

var str=“你好,世界!”
document.write(str.indexOf(“Hello”)+“
”) 文件。写入(str.indexOf(“世界”)+“
”)
document.write(str.indexOf(“world”)
检查查询字符串,查看它是否具有
param1
值,如果没有,则追加它

var url = new URL("http://www.example.com?param=1"); //window.location.href

if (url.searchParams.get('param'))
{
  console.log("Param exists");
}
else
{
   console.log("Param does not exist")
   url + "?param=1"
   console.log(url);
}
window.addEventListener(“单击”),函数(e){
e、 预防默认值();
var href=e.target.getAttribute(“href”);
console.log(href);
如果(href){
if(href.indexOf(“param=1”)=-1){
href=href+“?参数=1”;
console.log(href);
//location.href=href;
}否则{
href=href+“?参数=2”;
console.log(href);
//location.href=href;
}
//   
}
});
$(文档).ready(函数(){
var href=“www.example.com?param=1”;
如果(href.indexOf(“www.example.com”)>=0&&href.indexOf(“param=1”)>=0){
警报(“Url已给出单词”);
//location.href=href+“?param=1”;
//e.预防违约();
}
})

检查URL
检查它:

window.addEventListener(“单击”),函数(e){
const href=e.target.getAttribute(“href”);
如果(href){
console.log(href.includes('?param=1'));
//基于这个条件,你可以做任何你想做的事情
e、 预防默认值();
}
});




您可以使用此逻辑检查查询字符串中是否存在值:请给我一个示例?
url.split(“?”[1]
这只是签入索引1,但是如果参数不在索引1中,该如何操作?@Antonio您现在可以试试这个@Antonio window.location.href返回当前页面窗口的href(URL)。location.hostname返回web主机窗口的域名。location.pathname返回当前页面窗口的路径和文件名。location.protocol返回使用的web协议(http:或https:)window.location.assign加载新的document@Antonio您可以使用
symbol
var domain=url.split(“?”)[0]简单地拆分字符串它可以工作。但是如果我删除
e.preventDefault()
为什么不使用
?param
?它将阻止默认行为单击
href.indexOf(“example.com”)
您可以添加单词的任何部分以对照提供的字符串进行检查。href.includes('example.com')-这将返回true或false