@maniii

Как правильно организовать сбор родительских заголовков и принадлежащих им записей на jquery или js?

Добрый день.
Имеем html такого вида:
<div class="nodeMarka">

	<div class="layer tile" data-force="10">
		<div class="tile__name nod_marka_name">Audi / Ауди</div>
		<div class="tile__list">
			<span>Model 1</span>
			<span>Model 2</span>
		</div>
	</div>
	<div class="layer tile" data-force="11">
		<div class="tile__name nod_marka_name">Dodge / Додж</div>
		<div class="tile__list">
			<span>Model 3</span>
			<span>Model 4</span>
			<span>Model 5</span>
		</div>
	</div>
	<div class="layer tile" data-force="12">
		<div class="tile__name nod_marka_name">Chrysler / Крайслер</div>
		<div class="tile__list">
			<span>Model 6</span>
		</div>
	</div>

</div>

Нужно получить запись такого вида:
[Audi / Ауди: "Model 1,Model 2", Dodge / Додж: "Model 3,Model 4,Model 5", Chrysler / Крайслер: "Model 6"] (модели разделенные запятыми)
Что я пытаюсь сделать:
var arr = new Array();
$('.nodeMarka .nod_marka_name').each(function(){
	var par = $(this).closest('.layer');
	var model = par.find('span').text();
	asocArr[$(this).text()] = model;
});

Т.е. я получаю [Audi / Ауди: "Model 1Model 2", Dodge / Додж: "Model 3Model 4Model 5"...]
Ребят, пните в нужную сторону, за наиболее точный пинок угощу пивом или йогуртом.
  • Вопрос задан
  • 166 просмотров
Решения вопроса 1
@bernex
Можно так:

var arr = [];

$('.nodeMarka .nod_marka_name').each(function(){
	var $mark = $(this),
      mark = $mark.text(),
      $node = $mark.parent(),
      models;
 
  models = $node.find('span').map(function() { return $(this).text(); }).get().join(',');
  arr[mark] = models;
});

console.log(arr);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Emptyform
@Emptyform
И вот так можно:
var s = '';
$('.tile').each(function() {
	s += $(this).find('.tile__name').text() + ': "';
  var s1 = '';
  $(this).find('.tile__list span').each(function() {
  	s1 += $(this).text() + ',';
  })
  s += s1.slice(0, s1.length-1) + '", ';
});
s = s.slice(0, s.length-2);
alert(s);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы