Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.01.2015, 11:35
Интересующийся
Отправить личное сообщение для rudoy24 Посмотреть профиль Найти все сообщения от rudoy24
 
Регистрация: 26.12.2014
Сообщений: 16

Избавится от дублей
Есть код страницы:
...
<div class="class-title">TITLE-1</div>
<img class="class-image" src="http://catalog-img/image-1.jpg" />
...
<div class="class-title">TITLE-2</div>
<img class="class-image" src="http://catalog-img/image-2.jpg" />
...
<div class="class-title">TITLE-3</div>
<img class="class-image" src="http://catalog-img/image-3.jpg" />
...


При помощи следующего скрипта:
var elems = document.querySelectorAll('.class-title, .class-image'),
    massive = document.getElementById('massive');

[].forEach.call(elems, function(self) {
if (self.tagName == 'IMG') {
	massive.value += '<p><img src=\"' + self[self.tagName == 'IMG' ? 'src' : 'innerHTML'] + '\" /></p>\n';
	} else {
	massive.value += '<p>' + self.innerHTML + '</p>\n';
	}
});


ПОЛУЧЕМ:
...
<p>TITLE-1</p>
<p><img src="http://catalog-img/image-1.jpg" /></p>
<p>TITLE-2</p>
<p><img src="http://catalog-img/image-2.jpg" /></p>
<p>TITLE-3</p>
<p><img src="http://catalog-img/image-3.jpg" /></p>
<p>TITLE-1</p>
<p><img src="http://catalog-img/image-1.jpg" /></p>
<p>TITLE-2</p>
<p><img src="http://catalog-img/image-2.jpg" /></p>
<p>TITLE-3</p>
<p><img src="http://catalog-img/image-3.jpg" /></p>
...


Как избавится от дублей, что бы получить?:
...
<p>TITLE-1</p>
<p><img src="http://catalog-img/image-1.jpg" /></p>
<p>TITLE-2</p>
<p><img src="http://catalog-img/image-2.jpg" /></p>
<p>TITLE-3</p>
<p><img src="http://catalog-img/image-3.jpg" /></p>
...
Ответить с цитированием
  #2 (permalink)  
Старый 16.01.2015, 11:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

rudoy24,
а просто убрать класс из картинок и переписать тег div на тег p?
Ответить с цитированием
  #3 (permalink)  
Старый 16.01.2015, 12:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070


<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>
...
<div class="class-title">TITLE-1</div>
<img class="class-image" src="http://catalog-img/image-1.jpg" />
...
<div class="class-title">TITLE-2</div>
<img class="class-image" src="http://catalog-img/image-2.jpg" />
...
<div class="class-title">TITLE-3</div>
<img class="class-image" src="http://catalog-img/image-3.jpg" />
...
<script>
  var elems = document.querySelectorAll('.class-image');
  for (var i=0; i<elems.length; i++)  {elems[i].classList.remove('class-image')}
  elems = document.querySelectorAll('.class-title');
  for (var i=0; i<elems.length; i++)  {
  var newDiv = document.createElement('p');
  newDiv.innerHTML =  elems[i].innerHTML;
  elems[i].parentNode.replaceChild(newDiv, elems[i])}
  alert(document.body.innerHTML)
</script>
</body>

</html>
Ответить с цитированием
  #4 (permalink)  
Старый 16.01.2015, 13:30
Интересующийся
Отправить личное сообщение для rudoy24 Посмотреть профиль Найти все сообщения от rudoy24
 
Регистрация: 26.12.2014
Сообщений: 16

А передать все занчения?:
document.getElementById('massive')


Подскажите!

Последний раз редактировалось rudoy24, 16.01.2015 в 13:49.
Ответить с цитированием
  #5 (permalink)  
Старый 16.01.2015, 13:50
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

rudoy24, нескромный вопрос - какой в этом замысел?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #6 (permalink)  
Старый 16.01.2015, 14:03
Интересующийся
Отправить личное сообщение для rudoy24 Посмотреть профиль Найти все сообщения от rudoy24
 
Регистрация: 26.12.2014
Сообщений: 16

danik.js - это своего рода (типа) парсер. Скрипт создает массив (из текста и картинок по классу) >> массив с данными передается переменной >> готовый результат отправляется на почту.

То есть обработчик написанный в самом начале работает правильно, но создает дубли, а от них необходимо избавится!

Последний раз редактировалось rudoy24, 16.01.2015 в 14:09.
Ответить с цитированием
  #7 (permalink)  
Старый 16.01.2015, 14:38
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

rudoy24,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>
<textarea id="massive" name="" cols="70" rows="10" ></textarea>
...
<div class="class-title">TITLE-1</div>
<img class="class-image" src="http://catalog-img/image-1.jpg" />
...
<div class="class-title">TITLE-2</div>
<img class="class-image" src="http://catalog-img/image-2.jpg" />
...
<div class="class-title">TITLE-3</div>
<img class="class-image" src="http://catalog-img/image-3.jpg" />
...

<script>
 var elems = document.querySelectorAll('.class-title, .class-image'),
    massive = document.getElementById('massive');

[].forEach.call(elems, function(self) {
if (self.tagName == 'IMG') {
	massive.value += '<p><img src=\"' + self.src + '\" /></p>\n';
	} else {
	massive.value += '<p>' + self.innerHTML + '</p>\n';
	}
});

</script>
</body>

</html>
Ответить с цитированием
  #8 (permalink)  
Старый 16.01.2015, 18:03
Интересующийся
Отправить личное сообщение для rudoy24 Посмотреть профиль Найти все сообщения от rudoy24
 
Регистрация: 26.12.2014
Сообщений: 16

Спасибо рони (+)...
То что нужно!

Последний раз редактировалось rudoy24, 16.01.2015 в 19:30.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подрагивания курсора, как избавится? Sergey999 Элементы интерфейса 0 17.05.2012 17:16
Как можно избавится от повторного нажатия? ssh AJAX и COMET 4 23.02.2010 18:52