Question: How do I turn this, which uses two calls two `children`:

```
$('#id tr').children('td').children('input')

```

into something that calls children only once? I am trying to select every input text box inside a particular table row (`tr`) that's a child of `#id`. I've tried

```
$('#id tr').children('td input')

```

and

```
$('#id tr').children('td > input')

```

But neither of those work. I'm kinda new to these selector expressions, so sorry if it's obvious.

Answer: 
Although I like the `$("#id tr td input")` suggestions, in some cases (e.g. if you had the `$("#id tr")` object from some other source) you might instead be looking for [`.find()`](http://api.jquery.com/find/), which goes multiple levels deep (instead of `.children()` which only goes one):

```
$("#id tr").find("td input")

```
I'm amazed no one suggested this one:

```
$('td input', '#idc tr')

```

Which will allow you to have the `#idc tr` part from a variable. Basically what you're doing is doing a concatenation; so you read the right selector first, and then the left one, for instance:

```
$('> input', 'div')

```

Is the equivalent of:

```
$('div > input')

```

Now, lets do some golf here; the way you're passing the selector could be simplified to this two forms:

```
$('input', '#idc td')
// vs
$('#id').find('td input')

```

Both basically do the same, however as you may have noticed, the second one allows you to do jquery chaining; using `.end()` to go back to the previous selector `#id`.

I usually use the first statement whenever I need to do something simple that doesn't require me going back to the previous selector.