Как получить первые 100 символов из wikipedia api

Я хочу получить первые 100 текстовых символов из запроса API Википедии.

Я много искал в Google и Stack Overflow, но не получил ответа. Путем поиска я получил весь текстовый контент, но мне нужны только первые 100 символов.

Вот рабочий фрагмент моего кода:

<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<div id = "article"></div>

<script type = "text/javascript">

    
    $(document).ready(function(){

	$.ajax({
	    type: "GET",
	    url: "http://en.wikipedia.org/w/api.php?action=parse&format=json&prop=text&section=0&page=Jimi_Hendrix&callback=?",
	    contentType: "application/json; charset=utf-8",
	    async: false,
	    dataType: "json",
	    success: function (data, textStatus, jqXHR) {
	    
		var markup = data.parse.text["*"];
		var i = $('<div></div>').html(markup);
		
		// remove links as they will not work
		i.find('a').each(function() { $(this).replaceWith($(this).html()); });
		
		// remove any references
		i.find('sup').remove();
		
		// remove cite error
		i.find('.mw-ext-cite-error').remove();
		
		$('#article').html($(i).find('p'));
			
		
	    },
	    error: function (errorMessage) {
	    }
	});    
    
    });
    
	
    
</script>

Вероятно, вы захотите использовать action=query&prop=extracts, а не action=parse.

Tgr 23.11.2018 04:17
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
1
117
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ваш вопрос не имеет ничего общего с Википедией, но вы можете просто использовать substring() для получения первых символов n, т.е.

"one two three four".substring(0, 8)
-> "one two "

Что в вашем случае будет примерно таким:

i.substring(0, 100)
Ответ принят как подходящий

Вы пробовали использовать подстроку / срез?

<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<div id = "article"></div>

<script type = "text/javascript">

    
    $(document).ready(function(){

	$.ajax({
	    type: "GET",
	    url: "http://en.wikipedia.org/w/api.php?action=parse&format=json&prop=text&section=0&page=Jimi_Hendrix&callback=?",
	    contentType: "application/json; charset=utf-8",
	    async: false,
	    dataType: "json",
	    success: function (data, textStatus, jqXHR) {
	    
		var markup = data.parse.text["*"];
		var i = $('<div></div>').html(markup);
		
		// remove links as they will not work
		i.find('a').each(function() { $(this).replaceWith($(this).html()); });
		
		// remove any references
		i.find('sup').remove();
		
		// remove cite error
		i.find('.mw-ext-cite-error').remove();
		
		$('#article').html($(i).find('p').text().slice(0, 100));
			
		
	    },
	    error: function (errorMessage) {
	    }
	});    
    
    });
    
	
    
</script>

Поскольку нам требуется только 100 символов из текстового содержимого на вики-странице, мы можем перебирать абзацы, пока не получим не менее 100 символов, а затем извлекаем первые 100 символов с помощью метода slice.

<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<div id = "article"></div>

<script type = "text/javascript">
   
    
  $(document).ready(function(){
  // extracting 100 length text content from stackoverflow page
	$.ajax({
	    type: "GET",
	    url: "http://en.wikipedia.org/w/api.php?action=parse&format=json&prop=text&section=0&page=Stack_Overflow&callback=?", 
	    contentType: "application/json; charset=utf-8",
	    async: false,
	    dataType: "json",
	    success: function (data, textStatus, jqXHR) {
	    
		var markup = data.parse.text["*"];
		var i = $('<div></div>').html(markup);
		
		// remove links as they will not work
		i.find('a').each(function() { $(this).replaceWith($(this).html()); });
		
		// remove any references
		i.find('sup').remove();
		
		// remove cite error
		i.find('.mw-ext-cite-error').remove();
    
         // whole paragraphs
		 var paragraphs = $(i).find('p');
    
         // convert whole paragraphs to string
         var str = "";
         for (var i = 0; i < paragraphs.length; ++i) {
            str += paragraphs[i].textContent;
            // break as soon as we get required length
            if (str.length >= 100 ) break; 
         }
		 $('#article').html(str.slice(0,100));
			
	   },
	    error: function (errorMessage) {
	  }
	});    
    
    });
    
</script>

Другие вопросы по теме