<dd>
<br>
<br>
</dd>
如何移除上方<br>
?我试过了
$('dd:nth-child(1)', 'dd:nth-child(2)').remove();
你可以看到,仍然存在: http://jsfiddle.net/h12qo3oe/2/
答案 0 :(得分:2)
您目前使用jQuery选择器执行的操作实际上是specifying a namespace/context,用于选择元素。
$('selector', 'place-to-look')
。
您告诉jQuery要查找selector
作为上下文元素place-to-look
的子项,在这种情况下,您正在寻找位于另一个<dd>
下的<dd>
{1}}这是外部列表中的第二个。
......哪个不存在! (哦不!)
我相信其他人会给你“语法错误”的答案,但我想你可能想知道你在做什么而不是选择同样的引号如下:$('dd:nth-child(1), dd:nth-child(2)')
答案 1 :(得分:1)
jQuery接受second argument作为上下文,因此在您的语句中dd:nth-child(2)
被视为上下文,并且在该上下文中搜索dd:nth-child(1)
。
如果您尝试删除br
。为此你可以使用这个
$('dd').find('br').remove();
答案 2 :(得分:0)
你也可以这样做: DEMO
$('dd').children('br').remove();
答案 3 :(得分:0)
如果你想同时删除br
,这将在这里工作
$('dd br:nth-child(1), dd br:nth-child(2)').remove();
您的代码中存在两个问题。
1)您在$
中将两个选择器作为两个参数。因此,将它们包装在引号''
中会生成一个参数。
2) $('dd:nth-child(1)'
会先选择dd
,因此您应该说$('dd br:nth-child(1)'
答案 4 :(得分:0)
只是扩大人们的意见:
您的查询无效的原因是因为jQuery's multiple selector只接受一个参数。这是一个简单的修复,只需更改
$('dd:nth-child(1)', 'dd:nth-child(2)').remove();
到
$('dd:nth-child(1), dd:nth-child(2)').remove();
答案 5 :(得分:0)
首先,我建议您使用正确的jQuery多元素选择器:
$("element1, element2")
在你的情况下,你只需要思考第四个孩子&#34;作为数组中的选择器(arr [x])。 在您的代码中,您只需在文档中选择第二个dd元素。仅删除第一个&#34; br&#34;标签我将继续如下:
$("dd br:nth-child(1)").remove();
或者,更好的是,遵循关于导航DOM的最新jQuery建议:
$("dd").find("br").get(0).remove();
希望它有所帮助!
答案 6 :(得分:0)
您正在尝试删除br
; dd
的第一个和第二个孩子。您希望psuedo选择器:nth-child
适用于br
而不是dd
; br
是孩子们。
其次,正如@Morklympious清楚解释的那样,$('sel', 'context')
中的第二个论点是你搜索的背景:
$('dd > br').filter(':nth-child(1),:nth-child(2)').remove(); //removes first two children br of dd
$('dd > br:lt(2)').remove(); //same
$('dd > br').remove(); // removes all br children of dd