我需要删除父<br>
元素中的第二个和第三个<address>
元素,以使City
和StateCode
位于同一行。这是确切的代码:
<address>
<label>3651 Stardust Drive</label>
<br>
<label>Hannibal</label>
<br>
<label>MO</label>
<br>
<label>63401</label>
</address>
我需要修改HTML,使其如下所示:
3651 Stardust Drive
Hannibal, MO
63401
我必须使用的html就是因为我正在使用带有MVC的jQuery Mobile。我知道还有其他方法可以做到这一点,但宁愿只编写一个jQuery函数来为我修复它。
我最初尝试删除所有换行符,但我需要保留第一个换行符并保留其他换行符....
$(document).ready(function() {
//pretty-up the address & job descriptions
$('<br>').remove();
});
答案 0 :(得分:3)
$('<br>').remove();
这实际上并没有删除任何br元素,因为$('<br>')
创建了一个新的br元素(不将其插入任何地方),而.remove()尝试将其从文档中删除(什么都不做)。
要实际删除所有br元素,您需要
$('br').remove();
其中$('br')
查找文档中的现有br元素,而.remove()将删除它们。
如果您只想从特定的父元素或元素中删除br元素,您可以添加到'br'
选择器(例如将其更改为'address br'
),也可以使用.find( ):
var $elems = $('address');
$elems.find('br').remove();
要从标签元素中提取文本,您可以执行类似
的操作$elems.find('label').contents().unwrap();
您可以在http://api.jquery.org/找到有关我使用的所有jQuery方法的信息。
答案 1 :(得分:2)
编辑:
我需要删除父`address`元素中的第2和第3个`br`元素您需要澄清这一点,因为您想要的示例将zipcode放在一个单独的行上。我从字面上理解了你,所以我的答案解决了你提出的最初问题。
首先,如果您要直接选择它们,则需要正确选择br
元素:
$('br')
相反,您希望从br
元素中删除除第一个元素之外的所有address
元素。
因此,从地址元素开始,删除所有不等于第一个的br
标签(列表中的元素0)。
$('address').find('br:not(:eq(0))').remove();
请参阅the jsfiddle
如果您需要将逗号添加到到城市标签,那就像选择相应的标签然后添加like so一样简单。
如果您需要在城市标签后添加 之后的逗号,那么就像选择相应的标签然后在like so之后添加标签一样简单。你选择哪个取决于你正在做什么。
答案 2 :(得分:1)
$('<br>').remove();
(选择 br 的正确语法是$('br')
而不是$('<br>')
)
$('<br>') creates a New br element
$('br').remove()
删除所有br标签..
试试这个
$('address').find('br:eq(1)').remove();
<强> Check Fiddle 强>