这对我有用,并逐步发现:
输出来自chrome控制台
首先定位包含令人讨厌的空白的父节点
$('.controls label[class="radio"]').parent();
[
…
" "
" "
…
" "
" "
因此,为了获得HTMLElement,我们在索引0处获取数组中的第一项
$('.controls label[class="radio"]').parent()[0];
…
" "
" "
…
" "
" "
$('.controls label[class="radio"]').parent()[0].childNodes;
[…,
" ",
" ",
…,
" ",
" "]我们再次有一个数组,是的,你发现了[]括号,但你看到了另一个区别,看看所有的逗号,这是我们用jQuery无法得到的。
谢谢HTMLElement,但现在我们可以回到jQuery,因为我想使用每个而不是for循环,你同意我的意见吗?
所以让我们在jQuery中包装数组,看看会发生什么:
$($('.controls label[class="radio"]').parent()[0].childNodes);
[…,
" ",
" ",
…,
" ",
" "]完善!我们有一个完全相同的结构,但是在jQuery对象中只有nnow所以让我们调用每个并打印“this”到控制台,看看我们有什么。
$($('.controls label[class="radio"]').parent()[0].childNodes).each(function () {
console.log('|'+$(this).html()+'|');
});
|Female|
|undefined|
|undefined|
|Male|
|undefined|
|undefined|所以我们使用jQuery来获取每个元素的html,标准的东西`$(this).html,因为我们看不到白色空间让它用管道填充|,好的计划但我们在这里有什么?
正如你所看到的,jQuery无法将空格转换为html,现在我们还没有定义。但这更好,因为如果空间可能是未定义的,那肯定是假的=)
所以让我们用jQuery摆脱吸盘。我们需要的只是$(this).html() || $(this).remove();让我们看看:
$($('.controls label[class="radio"]').parent()[0].childNodes).each(function () {
$(this).html() || $(this).remove();
});
[…,
" ",
" ",
…,
" ",
" "]亲爱的..但不要害怕!每个仍然返回先前的结构而不是我们已经更改的结构,让我们看一下我们的初始查询现在返回的内容。
$('.controls label[class="radio"]').parent();
[
…
…
所以你有它,如何删除元素/标签ala jQuery样式之间的空格。 h3>
的nJoy!