我试图将一个div与他的第一个<a>
href的href属性相关联。
我的HTML看起来像这样
<div class="clicked">
<a class="i-want-this-href" href="target">
<img>
</a>
<a class="this-one-is-useless" href="Wrong-target">
<img>
</a>
</div>
我测试了一些不同的方法:
$('.clicked').on('click',function(){
aux= $('this:first-child').attr("href");
console.log(aux);
});
但我总是在控制台上获得Undefined
。我想得到&#34;目标&#34;在第一个<a>
元素内。
任何帮助将不胜感激!
答案 0 :(得分:4)
您的选择器不正确,您可以使用.find()
/ .children()
和:first选择器
aux= $(this).find('a:first').attr("href");
答案 1 :(得分:0)
使用this
上下文和:first-child
选择器
$('.clicked').on('click', function() {
var href = $(this).find('a:first-child').attr("href");
console.log(href);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div class="clicked">
<a class="i-want-this-href" href="target">
<img>
</a>
<a class="this-one-is-useless" href="Wrong-target">
<img>
</a>
&#13;
答案 2 :(得分:0)
错误的选择器,如果你想在选择器中使用它,你应该按如下方式传递它:
var aux = $('a', this).prop("href");
//Or
var aux = $(this).find('a').prop("href");
注意: jQuery默认会选择第一次出现。
希望这有帮助。
$('.clicked').on('click',function(){
var aux = $('a', this).prop("href");
console.log(aux);
});
.clicked{
width:100%;
height:100px;
background-color: yellow;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="clicked">
<a class="i-want-this-href" href="target">
Image 1
</a>
<a class="this-one-is-useless" href="Wrong-target">
Image 2
</a>
</div>
答案 3 :(得分:0)
1)不要在选择器中使用this
,这需要单独传递给$
2)确保将变量声明为local,否则会出现bug。
3)使用first-of-type
$('.clicked').on('click',function(){
var aux = $(this).find('a:first-of-type').attr("href");
console.log(aux);
});
答案 4 :(得分:0)
$('.clicked').on('click',function(){
aux= $(this).find('a:first-child').attr("href");
console.log(aux);
});