jquery替换IE中不起作用的空格

时间:2011-09-22 05:09:51

标签: javascript jquery internet-explorer replace split

我对jquery有点新意,所以我希望有人可以帮我解决这个问题。

我正在研究grails,而且 我有这个jQuery对象:

var tableIds = $("#myTable tbody tr td:first-child").text().toString()

当我提醒()这个时,它有 id的 myTable上每一行的一些信息(第一列),如:

1 1213 2324 23123

(要获取id之间的空格,我必须在myTable的第一个td中手动添加'& nbsp;')

现在,当我尝试:

var idArray = new Array()
idArray = tableIds.split(" ")

它不起作用,“拆分”只是将idArray保留为原始空格的字符串

就像tableIds一样。

我必须做的是用连字符替换空格:

tableIds = tableIds.replace(/\s/g,"-")

然后拆分(“ - ”)工作,不知道为什么......但只在CHROME !!不是在IE中,我需要这个在愚蠢的IE中工作。

IE一直向我显示“1 1213 2324 23123”,它没有找到要替换的空格,只是就这样离开了。

任何人都有这方面的线索? 希望你能帮助我,如果没有,谢谢你。

5 个答案:

答案 0 :(得分:0)

我认为你可能以错误的方式解决这个问题。如果你想获得jQuery通过该选择器拾取的元素的ID数组,请尝试这样做:

var ids = [];
$("#myTable tbody tr td:first-child").each(function () {
    ids.push($(this).attr('id'));
});
//now the ids array will have all of the ID's of the elements in it

'each'在所选的每个元素上运行传递的函数。所以你可以非常可靠地获取所有ID。可能有更优化的方法,但这种方法从未让我失望。

编辑:重新阅读之后,我意识到你可能正在寻找你给出的文本ID ..类似......

| 1 | dog    | $5
| 2 | cat    | $2
| 3 | fish   | $1.10

所以..使用与我上面写的相同的想法...

var ids = [];
$("#myTable tbody tr td:first-child").each(function () {
    ids.push($(this).text());
});
//ids will be [1, 2, 3]

答案 1 :(得分:0)

尝试在每个ID后用常规空格替换 个空格。

答案 2 :(得分:0)

嗯......我可以在承担你的错误时离开,但在这里忍受我:

听起来你要将每个td的ID设置为一个字符串,其中包含一堆空格(或连字符,或其他)。

jQuery的选择器语法是构建的,因此您不必这样做。您应该能够使用上面的语法选择所需的元素,然后使用each()循环迭代它们。考虑一下:

var anArray = [];

$("#myTable tbody tr td:first-child").each(function(){
    //This code will run for every element matched by the above selector
    var contentsOfCell = $(this).text();
    anArray.push(contentsOfCell);
});

希望这有帮助!

答案 3 :(得分:0)

您可以使用jQuery的<td>提取每行的第一个.each()的内容,以迭代初始选择器的所有结果,并将每个值放在数组中:

var idArray = [];

$("#myTable tbody tr td:first-child").each(function() {
   idArray.push($(this).text());
});

我不知道正则表达式没有找到空格是什么,除非IE认为不间断的空格不是空格?

答案 4 :(得分:0)

感谢大家!我并没有尝试用简单的空格替换不间断的空间,因为在我的TD上手动添加空格并不是一个好主意。

但正如Stephen和nnnnnn以及Chazbot所说,这就是诀窍!

var ids = [];
$("#myTable tbody tr td:first-child").each(function () {
    ids.push($(this).text());
})

我不知道你可以&#34;每个&#34;这种jquery对象,我应该知道它:D 一些新的东西要学习。

再次感谢!