如何更改某个元素的href值

时间:2013-12-24 10:51:07

标签: jquery css

我有像这样的HTML结构

<div id="DeltaPlaceHolderLeftNavBar">
   <div>
   <div>
      <ul>
         <li><a href="link1.php"><span class="someclass">LINK1</span></a>
            <ul>
               <li><a href="link1a.php"><span class="someclass">LINK1A</span></a></li>
            </ul>
         </li>
         <li><a href="link2.php"><span class="someclass">LINK2</span></a></li>
      </ul>
   </div>
   </div>
</div>

我想更改包含子UL的那些LI的HREF。正如你在上面看到的,LINK1里面包含UL,但是LINK2没有,所以为此我写了下面的jquery代码,但是它没有用。

$('#DeltaPlaceHolderLeftNavBar div>div>ul>li>a').click(function()
{
   if($(this).closest("li").children("ul").length > 0)
   {
      //the code comes inside this condition but following line doesn't work
      $(this).closest("li").children("ul").attr("href","#");
   }
});

修改

在代码

中添加了“href”标签

修改 在HTML中犯了一个错误,因为我忘了我现在添加的一个div。

1 个答案:

答案 0 :(得分:2)

我认为您只需要更改代码

$(this).closest("li").children("ul").attr("href","#");

$(this).closest("li").children("a").attr("href","#");

在你的if条件下。
现在您的点击事件功能变为:

$('#DeltaPlaceHolderLeftNavBar div>div>ul>li>a').click(function(event)
{
    event.preventDefault();

    if($(this).closest("li").children("ul").length > 0)
    {
        //the code comes inside this condition but following line doesn't work
        $(this).closest("li").children("a").attr("href","#");
    }  
});  

在这里,我添加了event作为函数参数和event.preventDefault(),以防止链接点击事件的默认值不会重定向到链接地址。