これは私がこれまでに持っているものです:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="content-type" content="text/html" />
<script src="http://code.jquery.com/jquery-latest.js">
</script>
<title>
Select
</title>
</head>
<body>
<script type="text/javascript">
var MyArray = {
"Windows": "imgx.jpg",
"Linux": "imgt.jpg",
"Mac": "imgi.jpg",
"MS DOS": "imgy.jpg",
"1GB": "imggb.jpg"
}
jQuery(function() {
jQuery('.product').change(function() {
var xkey = MyArray[jQuery.trim(jQuery(".product option:selected").text())];
if (typeof xkey == 'string') {
alert(xkey);
}
});
});
</script>
<div>
<select name="options_random_nr_yy" class="product">
<option value="">
-- Select --
</option>
<option value="56">
1GB
</option>
<option value="57">
2GB
</option>
<option value="73">
4GB
</option>
<option value="209">
8GB
</option>
</select>
</div>
<div>
<select name="options_random_nr_xx" class="product">
<option value="">
-- Select --
</option>
<option value="63">
Windows
</option>
<option value="65">
Linux
</option>
<option value="67">
Mac
</option>
<option value="89">
MS DOS
</option>
</select>
</div>
</body>
</html>
問題は、オプションを選択すると常に「未定義」が返されることです。ただし、<select>
要素の 1 つを削除すると、正常に動作します。
同じクラス名を持つすべての要素に同じ関数を適用するにはどうすればよいですか<select>
(この例では、共通のクラスは「製品」です)。