根据换行符选择文本

时间:2015-03-18 16:40:03

标签: javascript jquery

我如何获得体重:&带框的权重:分为2个变量,所以我可以在其他地方使用

主要的问题是我不能简单地计算br的数量并解决这个问题,因为它们不一致,有些人会有4个人在权重变化之前有6/7作为信息。 ..唯一一致的是权重和包含类

<div class="box">
 Quantity:  1 <br>
 Quantity pack:  10 <br>
 Box (width x length x height):  65x65x120 <br>
 Quantity 2:  2083 <br>
 Pallet :  800x1200x1100 <br>
 Weight:  95 <br>
 Weight with box:  115 <br>
</div>

谢谢大家

2 个答案:

答案 0 :(得分:2)

HTML的结构不是提取数据的理想选择。如果可能的话,我建议你把它修改成更合适的东西。如果不是,您可以检索所有文本节点,然后获取最后两个值 - 假设HTML的格式不会更改。像这样:

var nodes = $('.box').contents().filter(function() {
    return this.nodeType == 3 && $.trim(this.textContent) != '';
});

var weight = nodes[nodes.length -1];
var weightBox = nodes[nodes.length -2];

Example fiddle

如果属性的顺序不一致,则需要遍历nodes数组并检查前面的weight:weight with box:文本。

答案 1 :(得分:0)

快速而肮脏的解决方案是用可以识别它们的东西包裹它们,注意带有可用于定位节点的ID的跨度。

<div class="box">
 Quantity:  1 <br>
 Quantity pack:  10 <br>
 Box (width x length x height):  65x65x120 <br>
 Quantity 2:  2083 <br>
 Pallet :  800x1200x1100 <br>
 Weight:  <span id="weight">95</span> <br>
 Weight with box:  <span id="weight-box">115</span> <br>
</div>

<script>
var weight = document.getElementById("weight").innerHTML;
</script>

看到这个JS小提琴。 http://jsfiddle.net/8jduxn1s/