我正在处理一些列表项并在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);
});});
非常感谢。
答案 0 :(得分:1)
将您的查询更改为:
$(document).ready(function () {
$(".overlay .readIcon").click(function () {
var bookPath = $(this).parents('li').children('a').attr('href');
alert(bookPath);
});
});
答案 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');