Использовать getElementById () для нетекстового документа HTML

По сути, я хочу вытащить текст в теге div из документа на моем сервере, чтобы поместить его в текущий документ. Объяснить причину: я хочу вывести заголовок из «статьи новостей», чтобы использовать его в качестве текста для ссылки на эту статью.

Например, в целевом HTML есть тег:

Big Day in Wonderland

Поэтому в моем текущем документе я хочу использовать javascript для установки текста в моих привязанных тегах на этот заголовок, то есть:

 Big Day in Wonderland 

У меня возникли проблемы с выяснением того, как получить доступ к второстепенному документу в JS.

Заранее спасибо за вашу помощь.

ADDED: проблема в стиле Firefox (см. Комментарий ниже).

Обычно я пытаюсь решить проблему только с помощью инструментов, указанных пользователем; но если вы используете javascript, действительно нет веской причины не просто использовать jQuery.

  $(function() { var a = $('#mylink'); a.load(a.attr('href') + ' #' + a.attr('linked_div')); }); 

Эта небольшая функция может помочь вам обновить весь текст вашей ссылки динамически. Если у вас более одного, вы можете просто положить его в цикл $('a').each() и называть его днем.

обновление для поддержки нескольких ссылок при условии:

 $(function() { $('a[linked_div]').each(function() { var a = $(this); a.load(a.attr('href') + ' #' + a.attr('linked_div')); }); }); 

Селектор гарантирует, что будут обработаны только ссылки с наличием атрибута ‘linked_div’.

Я не уверен, где вы получаете свой HTML, но, предположив, что у вас уже есть его в строке, вы можете создать собственный документ , наполнить его HTML, а затем использовать стандартный getElementById чтобы вытащить часть, которую вы хотеть. Например:

 var doc = document.implementation.createDocument('http://www.w3.org/1999/xhtml', 'html', null); doc.documentElement.innerHTML = '
Nonsense
Big Day in Wonderland

pancakes

'; var h = doc.getElementById('news-header'); // And now use `h` like any other DOM object.

Живая версия: http://jsfiddle.net/ambiguous/ZZq2z/1/

Это, конечно, было бы намного проще с jQuery.

Вам нужно вывести содержимое удаленного документа в текущую DOM, как упоминал QuentinUK. Я бы рекомендовал что-то вроде метода jQuery .load ()