The Short Answer:
You need to use the on() function to create a delegated event handler and attach it to the table instead of the individual dropdown fields.
$(document).ready(function(){
$('.cf-table tbody').on('change','.dropdown', function(){
switch($(this).find(':selected').val()){
case 'Special':
case 'Temporary Disability':
$('#q30').hide();
break;
default:
$('#q30').show();
break;
}
});
});
The Long Answer:
This setup is referred to as a delegated event handler. The $(document).ready() function runs when the page is initially loaded (so your table probably has 1 row in it). On line 5 of your code, you are selecting all elements on the page with the "dropdown" class assigned to them and storing it to a variable (only contains the 1 instance of the dropdown class in Row 1). On line 9, you are assigning a 'change' event handler function only to those objects you selected on line 5. Any new lines in your table do not trigger this event handler, because they did not exist when you made the assignment, and so there was never any event handler function assigned to them.
To handle these situations, JavaScript has the concepts of event bubbling and delegated event handlers. You'll want to look at the instructions for jquery's .on() function. What happens in this case, is you attach the event handler function to some parent object of the thing you want to respond to. This parent object should exist when the page loads (the table's tbody element for instance). Whenever an event occurs on an object on the page, the browser actually "bubbles up" the event to all it's parent objects as well, meaning that it triggers the same event all the way up the chain of the HTML to give each parent object the opportunity to respond as well. When you use this form of the on() function that includes a selector, you are adding an event handler to the parent object (in this case the table body) that will only respond when the child object that generated the event matches this selector. In effect, this means your event handler will respond to any changes made to any '.dropdown' fields that are children of the table to which you attached the event handler.