Javascript 如何基于Url中的查询字符串以编程方式更改Url
生成到表中的GridView:Javascript 如何基于Url中的查询字符串以编程方式更改Url,javascript,jquery,html,asp.net,Javascript,Jquery,Html,Asp.net,生成到表中的GridView: <table id="ctl00_centerContent_GridView1"> <tr> <th scope="col"> <!-- COLUMN INFORMATION --> </th> </tr> <tr> <td
<table id="ctl00_centerContent_GridView1">
<tr>
<th scope="col">
<!-- COLUMN INFORMATION -->
</th>
</tr>
<tr>
<td style="font-weight:bold;"><a href="icard.aspx?cid=34&cpid=345&ccid=908">Insurance 1</a></td> <!-- link color by default is blue and turns orange on hover -->
<td align="center"> </td>
<td align="center">Y</td>
<td>908 as ave</td>
<td align="center">N</td>
<td align="center">N</td>
<td align="center">Y</td>
<td>Electronic</td>
<td style="white-space:nowrap;">090-093-2311</td>
<td> </td>
</tr>
<tr>
<td style="font-weight:bold;"><a href="icard.aspx?cid=34&cpid=345&ccid=542">Insurance 2</a></td>
<td align="center"> </td>
<td align="center">Y</td>
<td>908 as ave</td>
<td align="center">N</td>
<td align="center">N</td>
<td align="center">Y</td>
<td>Electronic</td>
<td style="white-space:nowrap;">090-093-2311</td>
<td> </td>
</tr>
<tr>
<td style="font-weight:bold;"><a href="icard.aspx?cid=34&cpid=345&ccid=587">Insurance 3</a></td>
<td align="center"> </td>
<td align="center">Y</td>
<td>908 as ave</td>
<td align="center">N</td>
<td align="center">N</td>
<td align="center">Y</td>
<td>Electronic</td>
<td style="white-space:nowrap;">090-093-2311</td>
<td> </td>
</tr>
<tr>
<td style="font-weight:bold;"><a href="icard.aspx?cid=34&cpid=345&ccid=125">Insurance 4</a></td>
<td align="center"> </td>
<td align="center">Y</td>
<td>908 as ave</td>
<td align="center">N</td>
<td align="center">N</td>
<td align="center">Y</td>
<td>Electronic</td>
<td style="white-space:nowrap;">090-093-2311</td>
<td> </td>
</tr>
</table>
- 如何将锚的Url替换为
Javascript:void(0)代码>如果
是542或587cid
- 如何将文本颜色更改为黑色,将光标更改为默认值 箭
.attr
设置属性(也不需要两次调用.css
):
您的代码需要进行一些更改才能完成所需的操作,因为当前它在当前页面的url中查找
ccid
变量,而不是href
属性中的url
首先,将每个更改为只查看a
元素:
$("#ctl00_centerContent_GridView1 tr td a").each(function() {
----------------------------------------^ here
$("#ctl00_centerContent_GridView1 tr td a").each(function() {
var url = $(this).attr("href");
var cid = getParameterByName(url, 'ccid');
if (cid == "542" || cid == "587"){
$(this)
.attr('href','javascript:void(0)')
.css({color:'black',cursor:'default'});
}
});
接下来,更改getParameterByName
以获取url和要查找的参数:
function getParameterByName(url, name) {
console.log(url)
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(url);
return results ? decodeURIComponent(results[1].replace(/\+/g, " ")) : "";
}
最后,如果ccid
符合您的要求,请将您的代码更改为仅执行此答案中最初指定的操作(注意删除最近('a')
,因为我们现在只查看a
元素):
下面是一个活生生的例子
$(“#ctl00_centerContent_gridview 1 tr td a”)。每个(函数(){
var url=$(this.attr(“href”);
var cid=getParameterByName(url,'ccid');
如果(cid==“542”| cid==“587”){
$(本)
.attr('href','javascript:void(0)'
.css({颜色:'black',光标:'default'});
}
});
函数getParameterByName(url,名称){
console.log(url)
name=name.replace(/[\[]/,“\\[”)。replace(/[\]]/,“\\]”);
var regex=new RegExp(“[\\?&]”+name+“=([^&\]*)”,
结果=regex.exec(url);
返回结果?decodeURIComponent(结果[1]。替换(/\+/g,“”):“”;
}
Y
阿斯大街908号
N
N
Y
电子的
090-093-2311
Y
阿斯大街908号
N
N
Y
电子的
090-093-2311
Y
阿斯大街908号
N
N
Y
电子的
090-093-2311
Y
阿斯大街908号
N
N
Y
电子的
090-093-2311
您可以使用.attr
设置属性(也不需要两次调用.css
):
您的代码需要进行一些更改才能完成所需的操作,因为当前它在当前页面的url中查找ccid
变量,而不是href
属性中的url
首先,将每个更改为只查看a
元素:
$("#ctl00_centerContent_GridView1 tr td a").each(function() {
----------------------------------------^ here
$("#ctl00_centerContent_GridView1 tr td a").each(function() {
var url = $(this).attr("href");
var cid = getParameterByName(url, 'ccid');
if (cid == "542" || cid == "587"){
$(this)
.attr('href','javascript:void(0)')
.css({color:'black',cursor:'default'});
}
});
接下来,更改getParameterByName
以获取url和要查找的参数:
function getParameterByName(url, name) {
console.log(url)
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(url);
return results ? decodeURIComponent(results[1].replace(/\+/g, " ")) : "";
}
最后,如果ccid
符合您的要求,请将您的代码更改为仅执行此答案中最初指定的操作(注意删除最近('a')
,因为我们现在只查看a
元素):
下面是一个活生生的例子
$(“#ctl00_centerContent_gridview 1 tr td a”)。每个(函数(){
var url=$(this.attr(“href”);
var cid=getParameterByName(url,'ccid');
如果(cid==“542”| cid==“587”){
$(本)
.attr('href','javascript:void(0)'
.css({颜色:'black',光标:'default'});
}
});
函数getParameterByName(url,名称){
console.log(url)
name=name.replace(/[\[]/,“\\[”)。replace(/[\]]/,“\\]”);
var regex=new RegExp(“[\\?&]”+name+“=([^&\]*)”,
结果=regex.exec(url);
返回结果?decodeURIComponent(结果[1]。替换(/\+/g,“”):“”;
}
Y
阿斯大街908号
N
N
Y
电子的
090-093-2311
Y
阿斯大街908号
N
N
Y
电子的
090-093-2311
Y
阿斯大街908号
N
N
Y
电子的
090-093-2311
Y
阿斯大街908号
N
N
Y
电子的
090-093-2311
让我们分步走
迭代应该在a
元素之上,因为您并没有任何不相关的锚,所以好的选择器应该是
#ctl00_centerContent_GridView1 tr td a
要提取ccid
的值,类似的方法应该可以工作:
var ccidValue = getParameterByName($(this).attr("href"), "ccid");
确保更新getParameterByName
以接受url参数,而不是始终使用当前页面url:
function getParameterByName(url, name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(url);
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
然后检查值是否为“542”或“587”,并更换:
if (ccidValue === "542" || ccidValue === "587") {
$(this).attr("href", "javascript:void(0);")
}
如果您希望应用某些样式,我建议您定义一个类并使用它,而不是使用一些内联脚本:
disabledCardLink {cursor: default; color: black;}
$(this).addClass("disabledCardLink");
我们分步走吧
迭代应该在a
元素之上,因为您并没有任何不相关的锚,所以好的选择器应该是
#ctl00_centerContent_GridView1 tr td a
要提取ccid
的值,类似的方法应该可以工作:
var ccidValue = getParameterByName($(this).attr("href"), "ccid");
确保更新getParameterByName
以接受url参数,而不是始终使用当前页面url:
function getParameterByName(url, name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(url);
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
然后检查值是否为“542”或“587”,并更换:
if (ccidValue === "542" || ccidValue === "587") {
$(this).attr("href", "javascript:void(0);")
}
如果您希望应用某些样式,我建议您定义一个类并使用它,而不是使用一些内联脚本:
disabledCardLink {cursor: default; color: black;}
$(this).addClass("disabledCardLink");
试试这个:
$(function(){
$('a[href*="ccid=542"]', 'a[href*="ccid=587"]').each(function(){
DisableLink($(this));
});
});
function DisableLink(elem){
elem.parent().html('<a href="javascript:void(0);" style="color: #000;cursor: default;">' + elem.text() + '</a>');
}
$(函数(){
$('a[href*=”