获取href值

时间:2014-11-11 15:13:08

标签: javascript jquery html

我的网站上有多个弹出式窗口。在每个弹出窗口悬停时,都有一个颜色选择器。我通过查看图像的标题来获得所选:

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>                   

3 个答案:

答案 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。您可以通过执行

从jQuery集中获取plain元素
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"));