Получить данные-значение из элемента в другом файле с помощью jQuery

#javascript #jquery #html

#javascript #jquery #HTML

Вопрос:

Итак, в принципе, у меня есть несколько элементов с некоторыми значениями данных в файле. Я хочу динамически создавать ссылки на них, используя эти значения данных для ввода текста, href и т.д.

Например, у меня есть два divs, id’ed first и second . Они имеют importance значения, соответственно «наиболее важные» и «наименее важные».

Я хочу создать две ссылки на них с фразой «Это ссылка на самый / наименее важный div», используя JavaScript / jQuery. Ниже приведен нерабочий пример.

Файл a.html (без заголовков и тому подобное, ofc):

 <div id='first' data-importance='most important'>This is the first div.</div>

<div id='second' data-importance='least important'>This is the second div.</div>
  

Файл b.html :

 <p><a class='makelink' data-linkto='first'></a></p>

<p><a class='makelink' data-linkto='second'></a></p>

$(`.makelink`).each( function(){
  var target = $(this).data('linkto');
  $(this).attr('href','b.html#'   target);
  var imp = $('b.html #'   target).data('importance'); 
  $(this).html('Link to the '   imp   ' div');
});
  

Однако ничего не происходит. Приветствуется любая помощь.

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

1. вы заметили сообщение об ошибке в консоли браузера?

2. Вы не можете изменить DOM другого файла, если этот файл не открыт в окне или фрейме, о котором известно текущему файлу. Непонятно, что вы ищете.

Ответ №1:

Ваш код кажется правильным, за исключением того, что селектор должен быть внутри кавычек, а строка, сгенерированная в html() , неправильно отформатирована:

 $('.makelink').each( function(){ // Enclosed the selector with single/double qoute
  var target = $(this).data('linkto');
  $(this).attr('href','#'   target);
  var imp = $('#'   target).data('importance'); 
  $(this).html('Link to the '  imp   ' div'); // concatenate the string with the variable using  
});  
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div id='first' data-importance='most important'>This is the first div.</div>

<div id='second' data-importance='least important'>This is the second div.</div>

<p><a class='makelink' data-linkto='first'></a></p>

<p><a class='makelink' data-linkto='second'></a></p>  

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

1. Спасибо, что заметили эти ошибки. Предоставленный вами код работает как есть. Однако я попытался выполнить ту же реализацию для получения значений данных в элементах в другом файле, и это не сработало (я обновил вопрос). Знаете ли вы, почему? Спасибо

2. Вы удобно проигнорировали часть вопроса о «другом файле».

3. @HereticMonkey Нет. Я сформулировал вопрос, опуская эту часть, потому что я думал, что любое решение для элементов в том же файле будет работать, и ответ Мамума работает в этом случае. Однако моя проблема на самом деле не была решена…

4. @Вопроситель мой комментарий был адресован Мамун, а не вам. Я не уверен, почему вы приняли этот ответ, если он не ответил на ваш вопрос…

5. @HereticMonkey Я это понимаю. Я просто объяснял, что его ответ был хорош для вопроса, заданного ранее. Так что это моя вина, что его ответ больше не применяется.