无法使用jquery找到特定的a href

时间:2013-03-14 16:54:16

标签: jquery

我正在处理一些列表项并在readicon类上单击我无法捕获带有类bookpath的href值。在这种情况下(google.com)
这是代码

<li >
  <div class="overlay">
  <span id="Title">Yeah Dude</span>
  <img class="readIcon" src="images/read.png" />
  </div>
 <a class="bookPath" href="http://www.google.com"><img src="images/bookCovers/asp.net4.5.jpg"  alt="book" /></a></li>

我试过这段代码,但它返回undefined。

$(document).ready(function () {
$(".overlay .readIcon").click(function () {
    //    $(this).('href', 'index.html');
    var bookPath = $(this).parents('li').closest('a').href;
    alert(bookPath);


});});

非常感谢。

5 个答案:

答案 0 :(得分:1)

将您的查询更改为:

$(document).ready(function () {
    $(".overlay .readIcon").click(function () {
        var bookPath = $(this).parents('li').children('a').attr('href');
        alert(bookPath);
    });
});

小提琴:http://jsfiddle.net/Lbr4z/

答案 1 :(得分:0)

获取href atttribute值。使用closest获取外部li并使用find获取锚点

var bookPath = $(this).closest('li').find('a').attr("href");

Jsfiddle样本:http://jsfiddle.net/4QGHS/5/

同样在进行jQuery选择器时,尝试更具体,因为你可以find('a')将返回所有锚标记。因此,您最好使用您正在寻找的元素的 classname 。尝试为您的li元素提供课程。

<li class='bookItem'>
  <div class="overlay">
  // your other html goes here 
   <img class="readIcon" src="someImage.jog" /> 
  </div>
  <a class="bookPath" href="http://www.google.com"></a>
</li>

现在你的javascript将是

$(function(){

 $(".overlay .readIcon").click(function (e) {
    e.preventDefault();  //prevent as needed.
    var bookPath = $(this).closest('li.bookItem').
                                            find('a.bookPath').attr("href");
    alert(bookPath);
 });

});

Jsfiddle样本http://jsfiddle.net/4QGHS/9/

答案 2 :(得分:0)

使用$(selector).attr("href");:)

答案 3 :(得分:0)

有很多方法可以做到这一点。这是一个。

 $(document).ready(function () {

    $(".overlay .readIcon").click(function () {
        //    $(this).('href', 'index.html');
        var bookPath = $(this).parent().parent().find("a.bookPath").attr("href");
        alert(bookPath);


    });
});

答案 4 :(得分:0)

尝试使用.siblings()

var bookPath = $(this).parent().siblings('a').attr('href');

尝试使用.find()

var bookPath = $(this).closest('li').find('a').attr('href');

如果你想更具体一点:

var bookPath = $(this).closest('li').find('a.bookPath').attr('href');