GridView生成为表格:
<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>
如何添加一个 JQuery 脚本,该脚本从每一行获取 url 并检查 ccid
值,如果它是 542
或587
,那么链接不应链接到任何地方,字体颜色应为黑色,光标应为默认值(箭头)。
例如,对于第二行,<a href="icard.aspx?cid=34&cpid=345&ccid=542">Insurance 2</a>
应该是<a href="javascript:void(0);" style="color: #000; cursor: default;">Insurance 2</a>
脚本(开始编写但需要一些帮助):
$("#ctl00_centerContent_GridView1 tr td").each(function() {
var url = $(this).attr("href");
var cid = getParameterByName('ccid');
/* HOW CAN I REPLACE THE URL OF THE ANCHOR to "javascript:void(0);" IF "cid" is 542 or 587? */
$(this).closest('a').css('color', 'black'); //will this work?
$(this).closest('a').css('cursor', 'default'); //will this work?
});
function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
- 如何将 anchor 的网址替换为
Javascript:void(0);
如果cid
是 542 或 587。 - 如何将文本颜色更改为黑色并将光标更改为默认值 箭头。
最佳答案
您可以使用.attr
设置属性(也不需要两次调用.css
):
$(this).closest('a')
.attr('href','javascript:void(0)')
.css({color:'black',cursor:'default'});
<小时/>
您的代码需要进行一些更改才能完成您想要的操作,因为当前它在当前页面的 url 中查找 ccid
变量 - 而不是href
属性。
首先,将 each
更改为仅查看 a
元素:
$("#ctl00_centerContent_GridView1 tr td a").each(function() {
----------------------------------------^ here
接下来,更改您的 getParameterByName
以获取您要查找的网址和参数:
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
符合您的要求,则将您的代码更改为仅执行此答案中最初指定的操作(请注意删除 closest('a')
作为我们现在只查看 a
元素):
$("#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'});
}
});
下面的实例。
$("#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'});
}
});
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, " ")) : "";
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<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>
关于javascript - 如何根据 Url 中的查询字符串以编程方式更改 Url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32358066/