0

我无法弄清楚我在下面的代码中做错了什么。我尝试了几乎所有可以在这个论坛上找到的东西,但都没有成功。我正在尝试获取 H3 标记内“a href”的值。

HTML

<div class="product" style="opacity: 1;">
   <a title="product" href="url-to-product.com">..................</a>
   <h3><a href="url-to-product.com">Blabla</a></h3>
</div>
<div class="product" style="opacity: 1;">
   <a title="product" href="other-url-to-product.com">..................</a>
   <h3><a href="other-url-to-product.com">Blabla</a></h3>
</div>

我需要从 h3 标记内的 href 获取值,并使其成为在 getJSON 函数中使用的变量。我尝试了诸如最近的兄弟姐妹之类的事情,并且:

 $( ".opener" ).live("click", function(event) {
      event.preventDefault();
      $.get($(this).attr('href'), function(data, status) {
        $( "#dialog" ).dialog( "open" );

        **var url = $('.product h3 > a').attr('href')+'?format=json';**

        $.getJSON(url, function(data) {           

我总是得到一个“未定义”的错误。我看不出我做错了什么。

4

4 回答 4

1

为什么不使用:

$('h3 a').attr('href')

有很多方法可以解决这个问题,这取决于您的要求。

于 2013-07-02T11:51:46.993 回答
0

试试这样:

$('.product h3 > a').attr('href')

$(".product").each(function(){
    var a_href = $(this).find('h3 > a').attr('href');
    alert ("Href is: "+a_href);
});

小提琴

于 2013-07-02T11:55:19.773 回答
0

你应该做:

 $('.product').find('h3 > a').attr('href')
于 2013-07-02T11:51:55.353 回答
0

您的目标是 h3 元素并试图获取它的“href”属性。你想要做的是定位 -element 内的 -element 并获取它的'href'-attribute。

$(this).find("h3").children('a').attr('href');
于 2013-07-02T11:52:27.817 回答