次のメニューには、最大約 50 のアイテムと、ユーザーが前または次の都市に移動するために使用できる 2 つのリンクを含めることができます。この例では、4 つのアドレス リンクを示しています。
<ul id="menu">
<li><a href="/City/0101004H">1</a></li>
<li><a href="/City/0101004I">2</a></li>
<li><a href="/City/0101004J">3</a></li>
<li><a href="/City/0101004K">4</a></li>
</ul>
<a id="prev" href="#"><img width="16" height="16" src="/images/prev.png">Prev</a>
<a id="next" href="#"><img width="16" height="16" src="/images/next.png">Next</a>
スタック オーバーフローに関するヘルプがあり、次のコードを思いつきました。
$("#menu").on('click', 'a[href^="/City"]', function(event) {
event.preventDefault();
var prev = $(this).parent().prev().find('a');
var next = $(this).parent().next().find('a');
$('#prev').prop('href', jQuery(prev).prop('href')).prop('title', 'City ' + jQuery(prev).text());
$('#next').prop('href', jQuery(next).prop('href')).prop('title', 'City ' + jQuery(next).text())
});
これにより、メニュー項目の 1 つをクリックすると、前と次の href が適切な値に設定されます。機能しますが、リストの最初と最後の項目では機能しません。私が必要とするのはこれです:
a) 最初のアイテムがクリックされたとき、#prev を次のように変更したいと思います。
<a id="prev" href="#"><img src="/images/noentry.png"></a>
b) 最後のアイテムがクリックされたときに #next を次のように変更したい:
<a id="next" href="#"><img src="/images/noentry.png"></a>
コードをあまり追加せずにこれを行う簡単な方法はありますか?