2016-11-29 36 views
2

如何让所有的text<br/>tag如何让后<br>标签文本

我的HTML是这样

<i class="loc">cherry<br>From Shimla</i> 
<i class="loc">Apple<br>from kashmir</i> 
<i class="loc">banana<br>From bihar</i> 

预期输出:["From Shimla","from kashmir","From bihar"];

我试图像什么这

var arr = []; 
 

 
$('.loc').each(function(){ 
 
    arr.push($(this).text()); 
 
}); 
 
console.log(arr);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> 
 
<i class="loc">cherry<br>From Shimla</i> 
 
<i class="loc">Apple<br>from kashmir</i> 
 
<i class="loc">banana<br>From bihar</i>

回答

3

您可以定位br元素,并使用.get(index)来获取潜在的DOM元素,采用nextSibling为目标的文本节点。然后nodeValue属性可以用来获取文本。

var arr = []; 
 
$('.loc').each(function() { 
 
    arr.push($(this).find('br').get(0).nextSibling.nodeValue); 
 
}); 
 
console.log(arr);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> 
 
<i class="loc">cherry<br>From Shimla</i> 
 
<i class="loc">Apple<br>from kashmir</i> 
 
<i class="loc">banana<br>From bihar</i>

可以进一步提高你的代码为

var arr = $('.loc').map(function() { 
 
    return $(this).find('br').get(0).nextSibling.nodeValue; 
 
}).get(); 
 
console.log(arr);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> 
 
<i class="loc">cherry<br>From Shimla</i> 
 
<i class="loc">Apple<br>from kashmir</i> 
 
<i class="loc">banana<br>From bihar</i>

+0

非常感谢工作完全 –

1
var arr = []; 

$('.loc').each(function(){ 
    arr.push($(this).html().split('<br>')[1]); 
}); 
console.log(arr); 

您可以使用HTML(),把它分解,并使用第二个值来自阵列。

var arr = []; 
 

 
$('.loc').each(function(){ 
 
    arr.push($(this).html().split('<br>')[1]); 
 
}); 
 
console.log(arr);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<i class="loc">cherry<br>From Shimla</i> 
 
<i class="loc">Apple<br>from kashmir</i> 
 
<i class="loc">banana<br>From bihar</i>

1
var arr = []; 

    $('.loc').each(function(){ 
     arr.push($(this).children('br').get(0).nextSibling); 
    }); 
console.log(arr); 
+0

虽然此代码段可以解决的问题,[包括一个解释](http://meta.stackexchange.com/questions/114762/explaining - 完全基于代码的答案)确实有助于提高发布的质量。请记住,您将来会为读者回答问题,而这些人可能不知道您的代码建议的原因。 – secelite

相关问题