Javascript 基于父div属性更改href值的一部分
我有这个htmlJavascript 基于父div属性更改href值的一部分,javascript,jquery,html,Javascript,Jquery,Html,我有这个html 您可以这样做: if ($('.one').attr('title') == 'SomeText1') { $('a[href*="/NeedToChange/"]').each(function(){ var newLink = $(this).attr('href').replace('/NeedToChange/','/NewLink/'); $(this).attr('href',newLink); }); } 我把课
您可以这样做:
if ($('.one').attr('title') == 'SomeText1') {
$('a[href*="/NeedToChange/"]').each(function(){
var newLink = $(this).attr('href').replace('/NeedToChange/','/NewLink/');
$(this).attr('href',newLink);
});
}
我把课程改为“一”,因为你不应该用数字开始上课
这是一个。类不能以数字开头!(JS可能工作,但CSS将失败,您的文档将无法验证。) 如果
“NeedToChange”
是您无法控制的内容,您可以对斜杠字符之间的任何文本进行Regex定位并替换/unknownFolder/
,/anything/
$(.1[标题])。每个(函数(){
var title=this.title.split(“”[0];//只获取标题的第一部分
$(this.find(“.3a”).attr(“href”),函数(idx,val){
返回val.replace(/^\/([^\/]+)/,“/”+标题);
});
});代码>
循环浏览所有链接并获取家长标题,如下所示:
这似乎适用于以下html:
<div class="1" style="" title="SomeText1">
<div class="2">
<div class="3">
<a target="_blank" href="/NeedToChange/DispForm.aspx?ID=1">Link 1</a>
</div>
</div>
</div>
<div class="1" style="" title="SomeText2">
<div class="2">
<div class="3">
<a target="_blank" href="/NeedToChange/DispForm.aspx?ID=1">Link 2</a>
</div>
</div>
</div>
更新的小提琴:我真的很抱歉我不是那个意思。没问题,谢天谢地你的编辑很小。有时用户会做一个小的编辑,这会对答案的结果产生关键性的改变。。。很好:)我宁愿确保标题
存在,因为你的代码会破坏一个有效链接。。。但这可能是太挑剔了……而且你正在将“/DispForm.aspx?ID=1”
硬编码为JS,假设它不会从HTML内部更改(是不可变的)。非常感谢你的帮助和兴趣,你肯定为我指出了正确的方向,我将尝试使用类似indexOf title intead的拆分
<div class="1" style="" title="SomeText1">
<div class="2">
<div class="3">
<a target="_blank" href="/NeedToChange/DispForm.aspx?ID=1">Link 1</a>
</div>
</div>
</div>
<div class="1" style="" title="SomeText2">
<div class="2">
<div class="3">
<a target="_blank" href="/NeedToChange/DispForm.aspx?ID=1">Link 2</a>
</div>
</div>
</div>
$('.1').each(function (){
var title = $(this).attr("title"),
clTitle = title.split(" ")[0];
var $link = $(this).find(".3 a"),
href = $link.attr("href"),
newHref = href.replace("NeedToChange", clTitle);
if(typeof $(this).attr('title') !== 'undefined') {
$link.attr("href", newHref);
}
});