Javascript 基于父div属性更改href值的一部分

Javascript 基于父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); }); } 我把课

我有这个html


您可以这样做:

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);
   }

});