Загрузка jQuery с переменной вместо идентификатора элемента - PullRequest
1 голос
/ 08 июля 2011

У меня небольшая проблема с jQuery.Я хочу загрузить определенную область внешнего HTML-документа в div, вместо этого он загружает весь документ, а не указанную область.

Это триггер:

$('a').click(function(){ // my link to trigger the load
    var pid = $(this).attr('href'); //the pid is the links href
    getproject(pid); //trigger the load function, pass variable
});

Это запускаемая функция:

function getproject(pid) {
    $('#container').load('data.html', pid);
}

Поэтому, когда я нажимаю на мою ссылку, он должен загрузить элемент с идентификатором (#), указанным ссылкой, в мой контейнер, но он загружает все данные ...Я не могу найти решение этой проблемы.

Ссылка выглядит следующим образом (здесь нельзя использовать точную разметку): a href = "# elementtoload"

Документ данных выглядит следующим образом: divid = "elementtoload" div id = "..."

и множество других элементов с контентом, который должен быть загружен по id из ссылок href.

Ответы [ 5 ]

1 голос
/ 08 июля 2011

Глядя на документацию по $ load, вы сможете сделать это:

function getproject(pid) {
   $('#container').load('data.html #' + pid);
}
1 голос
/ 08 июля 2011

http://api.jquery.com/load/

Второй раздел, Загрузка фрагментов страницы.Чтобы мы точно сказали, насколько это актуально, вам нужно предоставить пример инициирующей ссылки и, в идеале, загружаемый документ.

0 голосов
/ 06 августа 2013

Я пробовал что-то похожее, и через несколько часов (...) Майкл наконец-то пришел с чем-то, что работает :), это помогло мне, # должно быть в строке URL, например:

$('#div1').load('data.html #' + x);
0 голосов
/ 08 июля 2011

Не уверен, каково ваше истинное намерение, но мне кажется, что у вас много проблем, чтобы получить pid , но затем не использовать его в своей процедуре загрузки.Я предполагаю, что код должен выглядеть примерно так:

function getproject(pid) {
    $(pid).hide().load('data.html');
}
0 голосов
/ 08 июля 2011

Конкатенация строк:

.load('data.html ' + pid);

По поводу вашего обновления:

<div id="#elementtoload"> должно быть <div id="elementtoload">

...