Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

How do I get the number of rows of a table using jquery in an HTML 5 document?

Posted on 2013-01-11
9
Medium Priority
?
276 Views
Last Modified: 2013-01-11
Hi:

Totally new to the world of HTML 5.

I've got a table defined
===================
<table id="foo">
 <tr> ....</tr>
 <tr> ....</tr>
 <tr> ....</tr>
</table>

I can get the number of rows in the the table by:
=======================================
var rowLength = document.getElementById("foo").rows.length;


Why doesn't the following work?
==========================
var rowLength = $("#foo").rows.length;

Thanks,
JohnB
0
Comment
Question by:jxbma
  • 4
  • 3
  • 2
9 Comments
 
LVL 83

Assisted Solution

by:leakim971
leakim971 earned 1000 total points
ID: 38768737
$("#foo") return a jQUery object not a table element

Use of the following :
$("tr", "#foo").length
$("#foo").find("tr").length
$("tr", "#foo").size()
$("#foo").find("tr").size()

Test page : http://jsfiddle.net/E7vPE/1/
0
 
LVL 1

Author Comment

by:jxbma
ID: 38768802
Thanks.
OK. I see that this works.

Can you explain to how to read wht's going on in:
========================================
$("tr", "#foo")

Does this mean find all the <tr>'s as children?
It would help clear things up a bit if you could put that into words.

Thanks,
JohnB
0
 
LVL 1

Author Comment

by:jxbma
ID: 38768804
How would I use the same jquery syntax to add and remove rows?

Thanks,
JohnB
0
 [eBook] Windows Nano Server

Download this FREE eBook and learn all you need to get started with Windows Nano Server, including deployment options, remote management
and troubleshooting tips and tricks

 
LVL 83

Expert Comment

by:leakim971
ID: 38768806
Yes, the second argument is the context where to search the first one
0
 
LVL 2

Expert Comment

by:tap52384
ID: 38768911
jQuery
$("#foo tr").length;

"Rows" doesn't work because rows is not a valid jQuery property.
0
 
LVL 1

Author Comment

by:jxbma
ID: 38768930
1) So is there any difference between:
===============================

$("#foo tr")


AND


$("tr", "#foo tr")

2) How would I use the same jquery syntax to add and remove rows?
========================================================


Thanks,
JohnB
0
 
LVL 2

Accepted Solution

by:
tap52384 earned 1000 total points
ID: 38768940
The second one is looking for nested <tr> tags, so that's not what you want.

Essentially, if you want to add a <tr> to an existing table, you could do:

$("#foo").append("<tr><td>cell content</td></tr>");

To remove a row, try:

$("#foo tr").eq(index).remove();

You could rewrite the second selector like:

$("tr", "#foo")

to select all rows as well. The second parameter is "context", or where the element(s) can be found.
0
 
LVL 1

Author Closing Comment

by:jxbma
ID: 38768953
Hey Folks:

Thanks so much for jumping on this and giving me answers quickly.

Thanks,
JohnB
0
 
LVL 2

Expert Comment

by:tap52384
ID: 38768954
Oh, and to explain a little better why "rows" works in plain javascript (I didn't know that) and not on the jQuery object, is because again, "rows" is not a property of a jQuery object. You can, however, get an actual HTML element, like a row, like such:

$("#foo tr")[index]

where "index" is the actual row. This would not give you a jQuery element, but an actual row of the table. You could use regular javascript methods on this object and it should work, like:

$("#foo tr")[index].style.backgroundColor = "#ffffff";
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article demonstrates how to create a simple responsive confirmation dialog with Ok and Cancel buttons using HTML, CSS, jQuery and Promises
The article shows the basic steps of integrating an HTML theme template into an ASP.NET MVC project
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…

782 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question