2012-10-26 72 views
0

我对整个RegEx流派的代码很陌生,我需要一些帮助。查找并替换​​中的某个链接的特定部分

我正在开发一个动态制图系统并引用6年前的月度数据。我有几年和几个月之间切换的链接。点击该链接后,它会更新图表(完美工作),并更新下面的表格数据(完美工作)。

问题:
更新表数据后,我需要更新所有的产业链接向下钻取到正确的年份和月份,最好使用jQuery。

HTML:

<td><a href="ind.jsp?year=2012&amp;industrycode=01&amp;month=01">Power</a></td> 

的联系是在表中的第1列,并有12行与需要的年份和月份更新的链接。

所需的结果:2010年
链接

用户点击进入五月从这个:

<td><a href="ind.jsp?year=2012&amp;industrycode=01&amp;month=01">Power</a></td><br> 

这样:

<td><a href="ind.jsp?year=2010&amp;industrycode=01&amp;month=05">Power</a></td> 
+1

你为什么不只是存储字符串的格式和插入号码并替换整个链接? – nhahtdh

+0

,因为行业代码在每一行都不相同,并且都不是全部格式相同。有些包括字母和数字,所以我不能顺序地添加到行业代码(01,02,03等),条件函数会得到很长的时间,我认为获取'href'值字符串会更容易,搜索特定参数,并用新字符串替换'href'值 – kingkode

+0

点击后你怎么知道月份是05?如果这很容易完成,那么您将不需要regex来进行替换。 – nhahtdh

回答

1

这应该与新的年,月全部更换<a> S的href属性第一<td>一切都在<tr> S的内部:

function getCSV(newYear, newMonth) { 
    $("#stat_table tbody td a").each(function() { 
     $(this).attr("href", $(this).attr("href").replace(/year=/[0-9]{4},"year="+newYear).replace(/month=/[0-9]{2},"month="+newMonth)); 
    }); 
} 
+0

这看起来像解决方案即时寻找。我修改了脚本以包含我的变量'y'和'm'以及添加缺少的右括号:'$(“td:first-child a”)。attr(“href”,$(this).attr(的 “href”)。代替(/年=/[0-9] {4}, “年=” + y)的.replace(/月=/[0-9] {2}, “月=” + m)个);但是,即使在控制台中出现错误:“意外的数字”任何想法为什么? – kingkode

+1

花了一点算出来,但我明白了!感谢蝙蝠侠的跳跃开始。这是我最终使用的: '$(“#stat_table tbody td a”)。attr(“href”,$(“#stat_table tbody td a”)。attr(“href”)。replace(/ year \ = \ d {4} /, “年=” + y)的。替换(/ month \ = \ d {2} /,“month =”+ m));' – kingkode

+0

编辑了一下答案,添加了表格的id,并且我也改变了它,所以'.each'-es through锚,所以'$(this)'意味着某事;)。如果您的代码将第一个锚链接href复制到其他所有其他链接中,则可以尝试更改为该版本。 – st3inn

0
$('a','td:first').attr('href',$('a','td:first').attr('href').replace('year=2012','year=2010').replace('month=01','month=05')) 

相关问题