我对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”,它没有找到要替换的空格,只是就这样离开了。
任何人都有这方面的线索? 希望你能帮助我,如果没有,谢谢你。
答案 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 一些新的东西要学习。
再次感谢!