我的网站上有多个弹出式窗口。在每个弹出窗口悬停时,都有一个颜色选择器。我通过查看图像的标题来获得所选:
var kleur = jQuery(this).attr('title');
但现在我想要达到同一个div的a href
。我尝试过以下代码:
alert(jQuery('.photo').find('a').getAttribute("href"));
但是我收到以下错误:
Uncaught TypeError: undefined is not a function
这是我每个弹出窗口的HTML结构
<div class="popup" style="display: none;">
<div class="product">
<div class="photo">
<a href="" class="sendkleur" id="link69"> <!-- href im trying to reach -->
<img id="product-collection-image-69" src="" alt="Test kleur" class="popup-image69">
</a>
</div>
<a href="" class="sendkleur" id="link69">
<strong>Test kleur</strong>
</a>
<span class="swatchLabel-category">Kleur:</span>
<p class="float-clearer"></p>
<div class="swatch-category-container" style="clear:both;" id="ul-attribute137-69">
<img onclick="listSwitcher();" src="" id="a137-32" class="swatch-category" alt="Beige" width="12px" height="12px" title="Beige">
<img onclick="listSwitcher();" src="" id="a137-36" class="swatch-category" alt="Zwart" width="12px" height="12px" title="Zwart">
</div>
<p class="float-clearer"></p>
</div>
</div>
答案 0 :(得分:0)
alert(jQuery('.photo').find('a').getAttribute("href"));
以上是不正确的。你试图做的是在jQuery对象上使用DOM函数。要读取jQuery对象的href
属性,请使用jQuery的attr
函数,如下所示:
alert(jQuery('.photo').find('a').attr("href"));
但是,如果您仍然希望使用不是jQuery函数的getAtrribute
,请执行以下操作:
alert(jQuery('.photo').find('a')[0].getAttribute("href"));
没有测试过这个,但我不明白为什么它不适合你。希望它有所帮助。干杯!
答案 1 :(得分:0)
您正在混合使用DOM和jQuery函数。
getAttribute
适用于普通DOM。您可以通过执行
alert(jQuery('.photo').find('a')[0].getAttribute("href"));
...或者,您可以使用jQuery的方法。 ;)
alert(jQuery('.photo').find('a').attr("href"));
答案 2 :(得分:0)
.getAttribute("href");
在JavaScript本身可用,但在jQuery中不可用。向其中添加[0]
选择DOM元素,然后运行getAttribute()
将选择与jQuery对象相关的DOM元素,然后获取该属性。但是,使用jQuerys .attr()
可以直接在jQuery中选择它。
所以这两个都有效:
// jQuery and pure JS
alert(jQuery('.photo').find('a')[0].getAttribute("href"));
// pure jQuery
alert(jQuery('.photo').find('a').attr("href"));