2010-11-23 2 views
0

Я не уверен, что это возможно, так как это сказано ... ниже - образец HTML, с которым я работаю. Я хочу, с jQuery, захватить имя продукта и вставить его в качестве идентификатора в парном теге span с поддержкой класса, заменяя пробелы символами подчеркивания.Используйте jquery для написания идентификатора на основе текста в теге span

<div><span class="title">Product1 Name</span> <span class="support"></span></div> 
<div><span class="title">Product1 Name</span> <span class="support"></span></div> 
<div><span class="title">Product1 Name</span> <span class="support"></span></div> 
<div><span class="title">Product1 Name</span> <span class="support"></span></div> 

Ниже был бы желательный HTML-код, который будет изменен jQuery. Это возможно?

<div><span class="title">Product1 Name</span> <span class="support" id="product1_name"></span> </div> 
<div><span class="title">Product2 Name</span> <span class="support" id="product2_name"></span> </div> 
<div><span class="title">Product3 Name</span> <span class="support" id="product3_name"></span> </div> 
<div><span class="title">Product4 Name</span> <span class="support" id="product4_name"></span></div> 
+0

вы имели в виду для «входа» охватывает в имеют разные названия продуктов? Все они имеют имя Product1. – 2010-11-23 16:17:42

ответ

4

Yup.

$('span.title').each(function() 
{ 
    var $this = $(this), 
     id = $this.text().toLowerCase().replace(/ /g, '_'); 
    $this.next().attr('id', id); 
}); 

Demo!

Это вполне может создавать элементы с одинаковыми идентификаторами, однако. Нехорошо.

+0

Все, вы избили меня до него ... – Blender 2010-11-23 16:12:18

0

что-то вроде:

(".title").each(function() {$(this).next(".support").attr("id",$(this).html().replace(" ","_"));}); 

не проверял, но он должен работать, надеюсь, что я получил кол-скобка в самом конце ...

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