0

私はいくつかのリスト項目に取り組んでおり、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>

私はこのコードを試しましたが、未定義を返します。

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


});});

どうもありがとう。

4

5 に答える 5

1

クエリを次のように変更します。

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

フィドル: http://jsfiddle.net/Lbr4z/

于 2013-03-14T16:58:49.443 に答える
0

これを行うには多くの方法があり、これは1つです。

 $(document).ready(function () {

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


    });
});
于 2013-03-14T17:05:32.303 に答える
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');
于 2013-03-14T17:09:58.530 に答える
0

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

于 2013-03-14T16:56:53.893 に答える
0

href 属性値を取得します。を使用closestして外側のリーを取得し、使用findしてアンカーを取得します

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

Jsfiddle サンプル : http://jsfiddle.net/4QGHS/5/

また、jQuery セレクターを実行するときは、できるだけ具体的にするようにしてくださいfind('a')すべてのアンカー タグを返します。したがって、探している要素に対して持っているクラス名を使用することをお勧めします。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/

于 2013-03-14T16:56:13.980 に答える