Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Извлечь значение атрибута строки находящейся в массиве (https://javascript.ru/forum/events/83788-izvlech-znachenie-atributa-stroki-nakhodyashhejjsya-v-massive.html)

Judgin 12.03.2022 18:56

Извлечь значение атрибута строки находящейся в массиве
 
Здравствуйте, нужно получить значение атрибута в переменную (см.фото). Пробовал что-то типа
let title = Array.from(doc.querySelectorAll('li')).map(x => x.innerHTML('title');


но не извлекает таким образом 'title'. Прошу подсказать как достичь нужного результата. Ниже сам код.

[HTML]<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
</head>
<body>
	<p id="content"/>
[/HTML]
<script>
	window.addEventListener("DOMContentLoaded", () => {
		let url = "https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%"
		url = url + "D0%BE%D1%80%D0%B8%D1%8F:%D0%9A%D0%B8%D0%BD%D0%BE%"
		url = url + "D0%BA%D0%BE%D0%BC%D0%B5%D0%B4%D0%B8%D0%B8_%D0%A1%"
		url = url + "D0%A1%D0%A1%D0%A0"
		fetch(url)
		.then(function (response) {
		// The API call was successful!
		return response.text();
		})
		.then(function (html) {
		// Convert the HTML string into a document object
		let parser = new DOMParser();
		let doc = parser.parseFromString(html, 'text/html');
		let str = "";
		// Get the image file
		
		let movieList =  Array.from(doc.querySelectorAll('li')).map(x => x.innerHTML);
		
		// let titles = Array.from(doc.querySelectorAll('li')).map(x => x.innerHTML('title');
		
		movieList = movieList.map(function(x){ 
			return x.replace(/<a href="/g,'<a href="https://ru.wikipedia.org/') 
		});
		for(i = 0; i < movieList.length; i++) {
			str += movieList[i] + '<br>';
		}
		content.innerHTML = str;
		console.log(str);
		})
		.catch(function (err) {
		// There was an error
		console.warn('Something went wrong.', err);
		});
	});
</script>
</body>
</html>
https://drive.google.com/file/d/1J3a...ew?usp=sharing

рони 12.03.2022 19:17

Judgin,
https://developer.mozilla.org/en-US/...t/getAttribute

Judgin 12.03.2022 21:12

Цитата:

Сообщение от рони (Сообщение 544161)

Пытаюсь получить значение атрибута с помощью getAttribute

let title = document.getElementsByClassName('category-item');
let attrVal =  title.getAttribute('title');
console.log(attrVal);


Но в итоге получаю ошибку в консоль TypeError: title.getAttribute is not a function

Почему это происходит?

рони 12.03.2022 21:36

Judgin,
getElementsByClassName выберите нужный элемент из списка!
let attrVal =  title[0].getAttribute('title')


или
let titles  = Array.from(document.getElementsByClassName('category-item'), x => x.getAttribute('title'));

Judgin 13.03.2022 00:06

Цитата:

Сообщение от рони (Сообщение 544164)
Judgin,
getElementsByClassName выберите нужный элемент из списка!
let attrVal =  title[0].getAttribute('title')


или
let titles  = Array.from(document.getElementsByClassName('category-item'), x => x.getAttribute('title'));

Благодарю за помощь! Разобрался.


Часовой пояс GMT +3, время: 06:02.