Вот что я в итоге сделал:
Я организовал HTML, чтобы пара элементов была соединена под новым родителем для целей именования:
<p id="first_flap"><span class="flap">MsgA1</span><span class="flap">MsgA2</span></p>
<p id="second_flap"><span class="flap">MsgB1</span><span class="flap">MsgB2</span></p>
У каждой пары есть класс "закрылок". Тогда я могу написать функцию:
function flip_flap(sel, cond) {
/* Find sel, then show flaps within it according to cond. */
var flaps = jQuery(sel + ">.flap");
var f0 = jQuery(flaps[0]);
(cond ? f0.show() : f0.hide());
var f1 = jQuery(flaps[1]);
(cond ? f1.hide() : f1.show());
}
Мне понравилась идея использования toggle (), но, к сожалению, он не работает для встроенных элементов, только для уровня блока, и мне нужно было использовать span.
Тогда я могу заменить свой оригинальный Javascript на:
flip_flap("#first_flap", conditionA);
flip_flap("#second_flap", conditionB);
Гораздо лаконичнее! Спасибо.