如何在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);
然后再使用它再次拆分,然后再使用等等,但似乎有一种更容易更有效的方式。
答案 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:
.replace()
<br>
s with spaces .append()
字符串到DIV
以便轻松使用jQuery。.remove()
来自jQuery对象的context的那些讨厌的A
标记。.text()
var $html, result, location = '...';
$html = $("<div></div>").append(location.replace(/<br>/gi, " "));
$("a", $html).remove();
result = $html.text();