2013-04-09 5 views
1

У меня есть название продукта «Pillow BALANCE purple», и я хочу, чтобы после второго слова перерыв строки. Как показано ниже.Разрыв строки после второго слова и раскраска

Подушка БАЛАНС
фиолетовый

это название имеет класс позволяет сказать, что «название». Я использую следующий код, чтобы изменить цвет первого слова «Подушка», но мне нужно также изменить цвет для второго и, конечно же, сделать третье слово, чтобы перейти ко второй строке. Любая помощь будет оценена.

//add span to first word of module title, page heading 
window.addEvent ('domready', function() { 
    var els = $$('.art-postcontent h2 a, .art-postcontent h2 a:link, .art-postcontent h2 a:hover, .art-postcontent h2 a:visited, .art-blockcontent h2 a, .art-blockcontent h2 a:link, .art-blockcontent h2 a:hover, .art-blockcontent h2 a:visited'); 
    if (!els.length) return; 
    els.each (function(el){ 
     var html = el.innerHTML; 
     var text = el.get("text"); 
     var pos = text.indexOf(' '); 
     if (pos!=-1) { 
      text = text.substr(0,pos); 
     } 
     el.set("html", el.get("text").replace(new RegExp (text), '<span class="first-word">'+text+'</span>')); 

    }); 
}); 
+0

Посмотрите 'сплит()'. Это будет полезно. Обычно вам нужно взять строку отдельно, которую вы получаете из DOM. Вы сделали первую часть этого. Сделайте все три слова. Затем создайте HTML-код, который вы хотите заменить, и верните его. (То, что вы сделали с регулярным выражением, может быть не очень хорошая идея. Используйте конкатенацию строк.) –

ответ

0

Использование функции split() должно помочь вам здесь.

var str = 'pillow BALANCE purple'; 
var substr = str.split(' '); //splits the string at each space (&nbsp;) 

$('#firstLine').text(substr[0] + substr[1]); //adds first two words to first line 
$('#secondLine').text(substr[2]); //add third word to second line 

HTML:

<div id="firstLine"></div> 
<br />  <!-- Break will put the next div on a new line --> 
<div id="secondLine"></div> 
+0

Спасибо за ответ, но это не сработало. Возможно, я не объяснил, что мне нужно. «Pillow BALANCE purple» является названием продукта и вызывается этим кодом Вы можете увидеть его здесь http://www.ninetteart.com/nart. Это имя любого продукта, и мне действительно нужно иметь первые два слова на первой строке, а остальные - ниже. Я не знаю, возможно ли это, и конечно, если я объясню, что я хочу правильно. Спасибо в любом случае за ваше время, чтобы помочь. –

+0

ну, прежде чем смотреть на пример, я могу сказать вам, что соглашение необходимо. вы говорите, что хотите первые два слова ... до тех пор, пока ваши продукты следуют за условным словом «слово word word» (каждое слово следует пробелом), тогда это действительно сработает. split ('') берет строку и разрывает ее в каждом пространстве, выбирая подстроки в массив. то вы можете вызывать каждое слово индивидуально, вызывая индекс массива ... поэтому первые два слова всегда будут массивом [0] и массивом [1] соответственно –

Смежные вопросы