我有以下 HTML 表单:-
<form id="subform">
<p>
<input type="button" id="btn" value="Go!"/>
</p>
<p>
<select id="optlist">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
</select>
</p>
</form>
以及以下 jQuery 片段:-
$("#btn").click(function () {
// if address select list is visible slide it up and then slide down new <p> tag
if ($('#optlist').is(":visible")) {
$('form > p:nth-child(2)').slideUp('slow', function () {
$('<p id="noresults">No results found</p>').insertAfter('form > p:nth-child(2)').hide().slideDown("slow");
});
}
// else if select list is not visible just slide down the new <p> tag
else {
$('<p id="noresults">No results found</p>').insertAfter('form > p:nth-child(2)').hide().slideDown("slow");
}
});
我想要做的是,如果#optlist
当前可见slideUp()
则slideDown()
一个新<p>
标签,否则只是slideDown()
一个新<p>
标签(如果#optlist
当前隐藏)。
这在上面工作得很好,虽然它有点笨拙,例如我必须<p>
在 theif
和else
语句中重复插入 new 。
除此之外,还有一个小错误,如果#noresults <p>
标签已经存在,它将当前添加另一个标签,如果它已经存在,我如何让它闪烁当前#noresults
?
我可以检查它是否存在,if ( $("#noresults").length ) {};
但我还需要重复这个(在if
and中else
)。
我可以将新的检查和创建<p>
放在一个函数中并调用它。
有没有更好的方法来构建当前代码?
在这里提琴