Написать внутреннюю ссылку с помощью AJAX

#jquery #ajax #href

#jquery #ajax #href

Вопрос:

Я пытаюсь написать некоторые из моих первых скриптов jquery, но у меня возникли некоторые проблемы… На моей странице есть длинный текст с большим количеством внутренних ссылок ( <a href="/contents/Foo.htm" class=.internal>Foo</a> ). Я бы хотел, чтобы при нажатии на одну из ссылок .internal путь href открывался внутри <div id="article"> .

 var InternalLink = function() {
    $(".internal").click(function(){
        var path =  $(this).attr("href");
        $.ajax({
            url: "path",
            success: function(data) {
                $('#article').html(data);
            }
        });
    });    
};
 

Я написал код, показанный ниже, и он работает отлично, но я пытаюсь обобщить код для каждой ссылки с внутренним классом:

 $("#article_01").click(function(){
    $.ajax({
        url: 'contents/article_01.htm',
        success: function(data) {
            $('#article').html(data);
        }
    });
});
 

Комментарии:

1. не ставьте «.» перед именем класса в привязке. Точка используется только в jquery для выбора на основе класса.

Ответ №1:

 <a href="/contents/Foo.htm" class="internal" data-ref="article_01">Foo</a>
 

JS:

 $(".internal").click(function(){
    var path =  this.href;
    var div = $(this).data('ref');
    $.ajax({
        url: path,
        success: function(data) {
            $('#' div).html(data);
        }
    });
    return false; // so the link does *not* follow through
});    
 

Итак, теперь все, что вам нужно сделать, это изменить data-ref указатель на div, в который вы хотите загрузить html.

Комментарии:

1. это не сработает, так как перед именем класса в привязке есть «.». Нужно удалить из html.

2. @scrappedcola спасибо, извините, скопировано прямо из OP — не обращал на это внимания, лол

3. Спасибо, приятель! но что я должен написать внутри href? ссылка на данные — это URL-адрес файла, который я хочу загрузить внутри div, но я не могу понять href. Могу ли я просто поставить «#»? Я попробовал скрипт, но, похоже, он работает неправильно… Я думаю, что path var не содержит правильного пути. В этом примере bit.ly/viKQrD консоль Chrome сообщает мне, что «GET (MyDomain).com/example/path 404 (не найден)»

4. @Nicolaesse извините, что я убрал кавычки path , не знаю, почему они там были. (примечание: сокращенные URL-адреса не одобряются в stack exchange, попробуйте использовать реальные URL-адреса.)

5. @Neal теперь это идеально! Большое вам спасибо!