是否可以删除''使用JQuery ..?

时间:2011-09-28 21:00:09

标签: jquery jquery-ui

我连续两个按钮,它们显示在两个td中,并且在IE中没有正确排列,我怀疑在输入之后或输入按钮之前td中的某个隐藏空间(& nbsp) ,遗憾的是我无法访问html代码,它会自动生成。唯一的方法是使用jQuery控制我有一个像这样的jQuery ..

$("td:contains(' ')").css("display", "none");

这是摆脱td中的那种& nbsp的正确方法吗?

虽然我对JQuery没有丰富的知识..

谢谢!

Akhil Paul

6 个答案:

答案 0 :(得分:48)

不,你会沿着这些方向做点什么:

$("td").html(function (i, html) {
    return html.replace(/ /g, '');
});

答案 1 :(得分:3)

NBSP不是元素,因此您无法隐藏它。

你可以做的是重写包含NBSP的元素......像这样:

return

同时使用jquery.contains检测NBSP的位置并将其设置为父元素一个字体大小为0或显示为none的类可以做到这一点。

请注意,如果您选择重写HTML以删除不需要的NBSP,则以前附加的所有事件都将被删除。

答案 2 :(得分:1)

使用此:

var td = $("td:contains(' ')");
var html = td.html();
html = html.replace(" ","");
td.html(html);

答案 3 :(得分:1)

如果我们采用问题标题(“是否可以删除'& nbsp'使用JQuery ......?”)而不是回答OP的具体情况,并以一般方式回答这个问题(我觉得这很有用) ,那么使用.html()的任何答案都有一个基本缺陷:用这种方式替换html也会删除与旧html相关的任何数据和事件处理程序 - 这是不可取的!它可能适用于OP的特定情况,但我认为以更一般的方式回答这个问题是有用的......

更好的方法是替换元素中单个文本节点的.textContent。所以给出以下标记:

<div class="container">
    &nbsp;<a href="www.google.com">Here is a link &nbsp;</a>
    <p>Here is a paragraph with another link inside: <a href="www.facebook.com">&nbsp;&nbsp;another link&nbsp;</a>&nbsp;</p>
    And some final text &nbsp;&nbsp;&nbsp;&nbsp;
</div>

我们可以删除所有&nbsp;(即unicode \u00A0 - 详情了解此here),如下所示:

$('.container, .container *').contents().each(function() {
    if (this.nodeType === 3) { // text node
        this.textContent = this.textContent.replace(/\u00A0/g, '');
    }
});

$('.container, .container *')选择容器及其中的所有元素,然后.contents()选择这些元素的所有子元素,包括文本节点。我们遍历每个节点,对于我们遇到的每个文本节点(nodeType === 3),我们用空字符串替换&nbsp;\u00A0)。

答案 4 :(得分:0)

我一直在为此苦苦挣扎,最后解决方案非常明显,而不是使用.html()不得不使用.text()

示例:

var text = $(label).text();
    text.replace(/&nbsp;/gi,''); 

答案 5 :(得分:0)

尝试

$('#div').text($('#div').text().replace(/&nbsp;/g, ' '));