Use Prop api instead of attr for jquery 1.9.
$("select option:contains(fish)").prop('selected', 'selected');
OR
$("select option:contains(fish)").prop('selected', true);
Reason : jQuery 1.6 introduced the .prop() method for setting or getting properties on nodes and deprecated the use of .attr() to set properties. However, versions up to 1.9 continued to support using .attr() for specific situations. This behavior in the name of backwards compatibility causes confusion when selectors are used that distinguish between attributes and properties.
Source : http://jquery.com/upgrade-guide/1.9/#changes-of-note-in-jquery-1-9
Mentioned in Attr Api : As of jQuery 1.6, the .attr() method returns undefined for attributes that have not been set. In addition, .attr() should not be used on plain objects, arrays, the window, or the document. To retrieve and change DOM properties, use the .prop() method.
Source : http://api.jquery.com/attr/#entry-longdesc