2015-08-22 1 views
0

Попытка заменить текст на класс div. Средство находит текст от .label(текст1 или любой текст), а затем замените его как класс class="text1" на родительский список <li> item like <li class="text1">. Пример приведен нижеКак заменить текст на класс div

HTML:
Это основной выход HTML код.

<div id="main-id"> 
<ul> 

<li> <!--List 1--> 
<span class="meta"> 
<div class="label"> 
<a href="http://lorem.com">text1</a> 
</div> 
</span> 
</li> 

<li> <!--List 2--> 
<span class="meta"> 
<div class="label"> 
<a href="http://lorem.com">text2</a> 
</div> 
</span> 
</li> 

</ul> 
</div> 

По Jquery/JS вывода HTML, как это: (Я хочу, чтобы это)

<div id="main-id"> 
<ul> 

<li class="text1"> <!--Add class to List 1--> 

<span class="meta"> 
<div class="label"> 
<a href="http://lorem.com">text1</a> <!--Get class name from here--> 
</div> 
</span> 
</li> 

<li class="text2"> <!--Add class List 2--> 

<span class="meta"> 
<div class="label"> 
<a href="http://lorem.com">text2</a> <!--Get class name from here--> 
</div> 
</span> 
</li> 

</ul> 
</div> 

Я использую этот Заменить текст script, но я не в состоянии сделать это. Любое предложение для другого способа сделать это?
Заранее спасибо.

ответ

3

Вы можете использовать addClass() добавить класс

$('.label a').each(function() { 
 
    var $this=$(this);  
 
    $this.closest('li').addClass($this.text()); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div id="main-id"> 
 
    <ul> 
 

 
    <li> 
 
     <!--List 1--> 
 
     <span class="meta"> 
 
<div class="label"> 
 
<a href="http://lorem.com">text1</a> 
 
</div> 
 
</span> 
 
    </li> 
 

 
    <li> 
 
     <!--List 2--> 
 
     <span class="meta"> 
 
<div class="label"> 
 
<a href="http://lorem.com">text2</a> 
 
</div> 
 
</span> 
 
    </li> 
 

 
    </ul> 
 
</div>

+0

О, я понял, спасибо! – Aariba

+0

@ Аабира: рад помочь :) –

+0

Привет, вы там? Это мой вопрос для вас: http://stackoverflow.com/q/32163672/4290783 – Aariba

1

jsfiddle

function replace(){ 

    var arr = []; 

    $('div .label').each(function(){ // search for divs with a label 
     arr.push($(this).text()); 
    }); 

    // add class to each <li> 
    $('li').each(function(index, element){ 
     $(this).addClass(arr[index]); 
    }); 
} 

replace(); 
+0

Большое спасибо! – Aariba

1

использовать для каждого $('li)

addClass() может добавить класс. Или используйте метод attr().

+1

$ ('li) - ничего не вернет – Data