Получение .closest () div id

0

Я пытаюсь реализовать код, указанный в этом ответе. Я хотел бы еще больше упростить его, используя closest() чтобы найти id ближайшего div и использовать его как местоположение, но он не работает - я просто получаю "undefined" в своем текстовом поле.

Здесь сценарий:

function updateDetails(date) {
    var loc = $(this).closest("div").attr("id");

    $('#buy-form').animatescroll({scrollSpeed:700,easing:'easeInOutSine'});    

    document.getElementById('date').value= date; 
    document.getElementById('venue').value= loc;   

    $('#resicheck').attr('disabled', true);
}

Здесь (упрощенная) разметка:

<div id="Philadelphia">
    <a href="javascript:updateDetails('20-24 January');">20-24 January</a>
</div>

Что я делаю не так?

  • 0
    В атрибуте href? - Работает, потому что обновляет ввод даты.
  • 0
    Вы уверены, что $(this) - это то, что вы ожидаете?
Показать ещё 4 комментария
Теги:

1 ответ

0

в HTML

вы не приняли this

<div id="Philadelphia">
 <a href="javascript:updateDetails('20-24 January',this);">20-24 January</a>
</div>

IN JS

function updateDetails(date,this) {
               var loc = $(this).closest("div").attr("id");
               $('#buy-form').animatescroll({scrollSpeed:700,easing:'easeInOutSine'});    
               document.getElementById('date').value= date; 
               document.getElementById('venue').value= loc;   
               $('#resicheck').attr('disabled', true);
            }

и jquery вам нравится очень просто

Теперь в html

<div id="Philadelphia">
    <a href="#">20-24 January</a>
</div>

В JS

$("#Philadelphia").on("click","a",function(e){
 e.preventDefault();
var date=$(this).text();
   var loc = $(this).closest("div").attr("id");
                   $('#buy-form').animatescroll({scrollSpeed:700,easing:'easeInOutSine'});    
                   $('#date').val(date); 
                   $("#venue").val(loc);   
                   $('#resicheck').attr('disabled', true);
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню