たくさんのメニュードロップダウンを複数の要素に変換しようとしています。ページにドロップダウンが1つしかない場合にこれを行うことができましたが、他のドロップダウンを追加すると、スクリプトが各メニューを複数回実行するように見えます。私はJavascript/Jqueryを初めて使用しますが、親要素への入力のみにする方法があるかどうか疑問に思っていました。
これが、単一のドロップダウンで機能する現在のスクリプトです。
$('.mylinks li').each(function() {
var inputClass = $('.mylinks .link').html().toLowerCase();
$('body').prepend('<select class="'+inputClass+'" onchange="window.location.href=this.options[this.selectedIndex].value"></select>');
$('a').each(function() {
var linkName = $(this).html();
var linkVal = $(this).attr('href');
$('select').append('<option value="'+linkVal+'">'+linkName+'</option>');
});
});
HTML
<div class="mylinks">
<ul>
<li>
<a href="#">Drop 1</a>
<a href="http://geartrade.com">Link 1</a>
<a href="http://geartrade.com">Link 2</a>
<a href="http://geartrade.com">Link 3</a>
</li>
<li>
<a href="#">Drop 2</a>
<a href="http://geartrade.com">Link 1</a>
<a href="http://geartrade.com">Link 2</a>
<a href="http://geartrade.com">Link 3</a>
</li>
</ul>
</div>
このエラーの例もここにあります:http://jsfiddle.net/UdTcF/