2014-01-30 4 views
0

Я пытаюсь использовать jquery, чтобы получить URL-адрес из классов для детей.JQuery получить от детей

<div class="div1"> 
    <h1 class="class2"> 
    <a href ="www.helloword.com/id2">hello user2</a> 
    </h1> 
</div> 

В основном я хочу использовать JQuery, чтобы получить URL, а затем присвоить его div1, когда кто-то нажимает на див1 это приведет вас к той же странице, как если бы вы были нажать на слово hello user2

Я попробовал

$(function() { 
      $(".div1").click(function(e) { 
      e.preventDefault(); 
      var url = $(this).children('.class2 a').find(".div1").attr('href'); 
      console.log(url); 
    }); 

    }); 

Но это пришло на хром как undefined.

, что я сделал неправильно

ответ

3

Вы можете попробовать:

$(function() { 
    $('.div1').click(function(e) { 
    var url = $(this).find('.class2 a').attr('href'); 
    console.log(url); 
    }); 
}); 
+0

Привет, hsz, 'a' не работает, потому что он дает другую ссылку. 'div1' как другие div внутри, но они только 2 ссылки url Меня интересует только ссылка в' class2' –

+0

@SarahJames Посмотрите на мое редактирование. Вы можете указать элемент с селектором '.class2 a'. – hsz

+0

сейчас он работает Спасибо –

0

Вы добавили один дополнительный вызов, чтобы найти (».div1"), он должен быть

var url = $(this).children('.class2 a').attr('href'); 
+0

Я сначала пробовал, но не работал. –

2

Нет необходимо использовать детей(), только find() будет работать:

$(function() { 
      $(".div1").click(function(e) { 
      e.preventDefault(); 
      var url = $(this).find('.class2 a').attr('href'); 
      console.log(url); 
    }); 

}); 
+0

Спасибо, что работает AlphaMale. –

0

Вам не нужно найти div1 в a тег. Кроме того, event.preventDefault() не требуется для div, так как по умолчанию для него не применяется действие по умолчанию.

var url = $(this).children('.class2 a').attr('href'); 
console.log(url); 
0
$(function() { 
    $('.div1').click(function(e) { 
    var url = $(this).find('.class2 a').attr('href'); 
    $(this).append('<p>'+url+'</p>'); 
    }); 
}); 

В принципе, если вы хотите, чтобы показать его в DIV. Или что-то подобное, однако вы хотите его отобразить.

Смежные вопросы