在jquery中拆分html标签

时间:2011-08-05 23:20:02

标签: jquery

如何在jquery中拆分此值。我打算使用拆分功能,但认为可能有一种更简单的方法。

var location = <span class="title">Greenbeck</span><br>9th Street<br>2554 glockcove<br>State, OX 10025<a class="loc" href="#" title="More info">Click For More Info</a>

我想分开它,所以我得到了这个结果。 Greenbeck 9th Street glockcove State,OX 10025

我打算像这样使用拆分。 var spl = location.split('
',location.length); 然后再使用它再次拆分,然后再使用等等,但似乎有一种更容易更有效的方式。

5 个答案:

答案 0 :(得分:1)

因为建议的地图是过滤和加入的正确方法,你需要.contents()来检索偶数文本节点,所以:

var plainAddress = $('<div>'+location+'</div>').contents().map(function(){
    var e = $(this);
    return (e.is('a') || e.is('br')) ? null : e.text();
}).get().join(' ');
// ouptput : 'Greenbeck 9th Street 2554 glockcove State, OX 10025'

要小心删除或分离,因为它们修改了dom树,它与过滤集合结果不同...

答案 1 :(得分:0)

$('selector')。text()给出元素的内部纯文本,所以你可以尝试换行和文本(没试过):

var plainAddress = $('<div>'+location+'</div>').text();

答案 2 :(得分:0)

您可以尝试:

 var location = $('<div><span class="title">Greenbeck</span><br>9th Street<br>2554 glockcove<br>State, OX 10025<a class="loc" href="#" title="More info">Click For More Info</a></div>');
location.find('a.loc').detach();
console.log(location.text());

答案 3 :(得分:0)

如果你在jQuery中实现它会更容易:

假设location是一个字符串,您可以立即将其转换为jquery对象:$(location)

现在它是一个对象,你可以遍历每个对象:$(location).each()

或者您可以将其映射到对象或数组:myArr = $(location).map()

示例:http://jsfiddle.net/rkw79/yZaAm/

请记住,您必须删除空白元素

答案 4 :(得分:0)

从原始Javascript的smidgen开始并跟进jQuery:

  1. .replace() <br> s with spaces
  2. .append()字符串到DIV以便轻松使用jQuery。
  3. .remove()来自jQuery对象的context的那些讨厌的A标记。
  4. 只显示.text()
  5. var $html, result, location = '...';
    
    $html = $("<div></div>").append(location.replace(/<br>/gi, " "));
    $("a", $html).remove();
    result = $html.text();
    

    Working example