Я пытаюсь вытащить элемент с другой страницы с id = usertags. Я использую метод .get.
Почему-то не получается, ошибок нет.
$.get('/cgi-bin/koha/opac-tags.pl', function(data) {
var tags = $(data).find("#usertags");
$("#mainuserblock").append(tags);
console.info( $(data) );
});
Меня больше всего смущает то, что говорит информация журнала $ (data). Мне кажется, что он на самом деле тянет не со страницы opac-tags.pl, а откуда-то еще:
{
"length": 0,
"prevObject": {
"0": {
"auth": {
"0": {
"0": {},
"1": {},
"2": {},
"3": {},
"4": {}
},
"1": {
"0": {},
"1": {},
"2": {},
"3": {},
"4": {},
"5": {}
}
},
"searchform": {
"0": {
"0": {},
"1": {},
"2": {},
"3": {},
"4": {},
"5": {},
"6": {}
},
"1": {},
"2": {}
},
"location": {
"href": "http://viu.bywatersolutions.com/cgi-bin/koha/opac-main.pl",
"origin": "http://viu.bywatersolutions.com",
"protocol": "http:",
"host": "viu.bywatersolutions.com",
"hostname": "viu.bywatersolutions.com",
"port": "",
"pathname": "/cgi-bin/koha/opac-main.pl",
"search": "",
"hash": ""
}
},
"context": {
"auth": {
"0": {
"0": {},
"1": {},
"2": {},
"3": {},
"4": {}
},
"1": {
"0": {},
"1": {},
"2": {},
"3": {},
"4": {},
"5": {}
}
},
"searchform": {
"0": {
"0": {},
"1": {},
"2": {},
"3": {},
"4": {},
"5": {},
"6": {}
},
"1": {},
"2": {}
},
"location": {
"href": "http://viu.bywatersolutions.com/cgi-bin/koha/opac-main.pl",
"origin": "http://viu.bywatersolutions.com",
"protocol": "http:",
"host": "viu.bywatersolutions.com",
"hostname": "viu.bywatersolutions.com",
"port": "",
"pathname": "/cgi-bin/koha/opac-main.pl",
"search": "",
"hash": ""
}
},
"length": 1
},
"context": {
"auth": {
"0": {
"0": {},
"1": {},
"2": {},
"3": {},
"4": {}
},
"1": {
"0": {},
"1": {},
"2": {},
"3": {},
"4": {},
"5": {}
}
},
"searchform": {
"0": {
"0": {},
"1": {},
"2": {},
"3": {},
"4": {},
"5": {},
"6": {}
},
"1": {},
"2": {}
},
"location": {
"href": "http://viu.bywatersolutions.com/cgi-bin/koha/opac-main.pl",
"origin": "http://viu.bywatersolutions.com",
"protocol": "http:",
"host": "viu.bywatersolutions.com",
"hostname": "viu.bywatersolutions.com",
"port": "",
"pathname": "/cgi-bin/koha/opac-main.pl",
"search": "",
"hash": ""
}
},
"selector": "response = {\n\tadded: 0,\n\tdeleted: 0,\n\terrors: 0\n\n\n};"
}
Кто-нибудь когда-нибудь испытывал нечто подобное?
Спасибо, таплар! это то, что я сделал, см. вторую часть кода. это console.info. который, как мне кажется, взят из /cgi-bin/koha/opac-main.pl, а не из /cgi-bin/koha/user-tags.pl. на который ссылается начальный jquery.
Если вы читаете мою цитату, я сказал без, окружая данные с помощью $ (). в журнале вашей консоли есть $ ()
Причин могло быть много. Не зная настройки страницы, которую вы тянете. Как уже было сказано, console.info(data), кроме того, полагается ли ваша другая страница на выполнение JavaScript для генерации элементов? Если это так, $.get() выполняет сценарии нет на извлеченной странице. Ваш идентификатор написан неправильно? Могло быть по ряду причин.
Также вы сможете сделать это с помощью только $("#mainuserblock").load('/cgi-bin/koha/opac-tags.pl #usertags');.
@RoryMcCrossan Точно - я делал что-то подобное точно так же раньше.
Ваш opac-tags.pl - это нет, возвращающий HTML, но вы используете его, как если бы он был.
Вы можете попробовать указать тип на $.get, например $.get(url, success, "html")



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


См. этот вопрос и, в частности, этот ответ.
По сути, вы должны передать контекст HTML в качестве второго аргумента $:
$("#usertags", data);
В качестве альтернативы этот синтаксис также должен работать:
$("#mainuserblock").load("/cgi-bin/koha/opac-tags.pl #usertags");
но он перезапишет предыдущее содержимое #mainuserblock.
console.info(data)без $ () вокруг данных и посмотрите, что он распечатает.