I need to grab the text value of a child div.
var text_val = $('#first').next('#second_child').val();
You want to use
text() instead of
val(). Although, since what you are selecting has an id (and ids must be unique), you could also simply select based on the id without involving the container element at all.
val() method only works on input elements, textareas, and selects -- basically all form elements that contain data. To get the textual contents of a container, you need to use
html(), if you want the mark up as well).
var text_val = $('#second_child').text(); //preferred
var text_val = $('#first').children('#second_child').text(); // yours, corrected