 
			
				02.08.2017, 15:50
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Кандидат Javascript-наук 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 23.12.2016 
					
					
					
						Сообщений: 121
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				Убрать повторяющиеся элементы
			 
			
		
		
		
		Доброго времени суток, форумчане, подскажите пожалуйста, как изменить функцию, убрав повторяющийся элемент? 
app.getRatingButton = function (item) {
        if (item.sourcePlaceId !== 3) {
            if(item.rating === 0)
                return "<span class='action-tooltip  rating-empty'" +
                           "data-role='tooltip'" +
                           "data-width='200'" +
                           "data-show-on='click'" +
                           "data-auto-hide='false'" +
                           "data-position='left'" +
                           "data-bind='value: rating.content, events: { show: rating.onShow, hide: rating.onHide }'></span>";
            else
                return "<span class='action-tooltip  rating-setted'" +
                            "data-role='tooltip'"+
                            "data-width='200'"+
                            "data-show-on='click'"+
                            "data-auto-hide='false'"+
                            "data-position='left'" +
                            "data-bind='value: rating.content, events: { show: rating.onShow, hide: rating.onHide }'>" + item.rating +
                        "</span>";
        } else {
            return "<span class=\"rating-disabled\"></span>";
        }
    };
В первых двух случаях функция возвращает практически одинаковый элемент, отличается только класс, возможно ли объявить общий элемент, а в условии добавлять нужный класс?  
		
	
		
		
		
		
		
		
	
		
			
			
	
			
			
			
			
			
				 
			
			
			
			
			
			
				
			
			
			
		 
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				02.08.2017, 15:57
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.12.2012 
					
					
					
						Сообщений: 3,841
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		AlexTrader,
  
app.getRatingButton = function (item) {
	if (item.sourcePlaceId === 3) 
		return "<span class=\"rating-disabled\"></span>";
	
	return 
		"<span class='action-tooltip  rating-"+(item.rating===0?'empty':'setted')+"'" +
		   "data-role='tooltip'" +
		   "data-width='200'" +
		   "data-show-on='click'" +
		   "data-auto-hide='false'" +
		   "data-position='left'" +
		   "data-bind='value: rating.content, events: { show: rating.onShow, hide: rating.onHide }'"+
		">"+(item.rating!==0?item.rating:'')+"</span>";
};
 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось Nexus, 02.08.2017 в 16:00.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				02.08.2017, 15:58
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Кандидат Javascript-наук 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 23.12.2016 
					
					
					
						Сообщений: 121
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Nexus, 
 А как быть с классом? 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				02.08.2017, 15:59
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Кандидат Javascript-наук 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 23.12.2016 
					
					
					
						Сообщений: 121
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 В первом случае "rating-empty", во втором "rating-setted" 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				02.08.2017, 16:00
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.12.2012 
					
					
					
						Сообщений: 3,841
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 AlexTrader, поправил. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				02.08.2017, 16:02
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.12.2012 
					
					
					
						Сообщений: 3,841
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 AlexTrader, можно переписать без тернарных выражений, будет понятней, но кода будет больше. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				02.08.2017, 16:03
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 01.12.2016 
					
					
					
						Сообщений: 3,650
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
app.getRatingButton = function (item) {
        if (item.sourcePlaceId !== 3) {
            if(item.rating === 0)
                return "<span class='action-tooltip  rating-empty'" +
                           "data-role='tooltip'" +
                           "data-width='200'" +
                           "data-show-on='click'" +
                           "data-auto-hide='false'" +
                           "data-position='left'" +
                           *!*"data-bind='value: rating.content, events: { show: rating.onShow, hide: rating.onHide }'></span>";*/!*
            else
                return "<span class='action-tooltip  rating-setted'" +
                            "data-role='tooltip'"+
                            "data-width='200'"+
                            "data-show-on='click'"+
                            "data-auto-hide='false'"+
                            "data-position='left'" +
*!*"data-bind='value: rating.content, events: { show: rating.onShow, hide: rating.onHide }'>" + item.rating +
                        "</span>";*/!*
        } else {
            return "<span class=\"rating-disabled\"></span>";
        }
    };
Не только класс ведь  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				02.08.2017, 16:04
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		AlexTrader,
  
app.getRatingButton = function (item) {
        if (item.sourcePlaceId !== 3) {
                return "<span class='action-tooltip  rating-"+(item.rating? "setted" : "empty")+"'" +
                            "data-role='tooltip'"+
                            "data-width='200'"+
                            "data-show-on='click'"+
                            "data-auto-hide='false'"+
                            "data-position='left'" +
                            "data-bind='value: rating.content, events: { show: rating.onShow, hide: rating.onHide }'>" + (item.rating || "") +
                        "</span>";
        } else {
            return "<span class=\"rating-disabled\"></span>";
        }
    };
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				02.08.2017, 16:21
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Кандидат Javascript-наук 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 23.12.2016 
					
					
					
						Сообщений: 121
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Возможно ли создать элемент спан с аттрубутами, в return добавлять нужный класс к нему? 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				02.08.2017, 16:56
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.12.2012 
					
					
					
						Сообщений: 3,841
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		AlexTrader, не понял, что Вы имеете ввиду. 
Можно переписать так, тогда манипулировать тегом будет проще.
 
app.getRatingButton = function(item) {
	if (item.sourcePlaceId === 3) 
		return "<span class=\"rating-disabled\"></span>";
	
	var span=document.createElement('span'),
		attrs={
			'data-role':'tooltip',
			'data-width':'200',
			'data-show-on':'click',
			'data-auto-hide':'false',
			'data-position':'left',
			'data-bind':'value: rating.content,events:{ show: rating.onShow,hide:rating.onHide }',
			'class':'action-tooltip  rating-empty'
		};
			
	if(item.rating!==0){
		span.innerHTML=item.rating;
		attrs['class']=attrs['class'].replace('empty','setted');
	};
	for(var name in attrs){
		if(attrs.hasOwnProperty(name))
			span.setAttribute(name,attrs[name]);
	};
	
	return span;
};
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 
 
 
 
	 | 
 
 
 |