これは私が取り組んでいる例です:http://jsfiddle.net/4suwY/5/
HTML:
<select id="asd">
<option>hello</option>
<option>I'M THE CHOSEN ONE</option>
<option>asd</option>
<option>wer</option>
<option>qwe</option>
</select>
JS:
var sel = document.getElementById("asd");
var optnz = sel.getElementsByTagName("option")[1];
sel.value = optnz.value;
optnz.style.display = "none";
ご覧のとおり、Chromeでは機能しますが、Safariでは機能しません。ドロップダウンメニューをクリックすると、[I'MTHECHOSENONE]オプションが非表示になります。
これは私が行った別のテストです:http://jsfiddle.net/4suwY/11/
同じHTML、これはJSです:
var sel = document.getElementById("asd");
var opt = document.createElement("option");
opt.innerHTML = "YAYA";
opt.value = "YAYA";
sel.appendChild(opt);
sel.value = "YAYA";
opt.style.display = "none";
とにかく、私がする必要があるのは、選択された(現在の)オプションを表示し、ドロップダウンメニューが開いたときにユーザーに非表示にすることです。そのため、ユーザーはそれを選択できません。
何か提案/回避策はありますか?エラーは表示されません。Safariの何が問題になっていますか?アプローチを変更する必要がありますか?Jqueryは役に立たないようです。
編集:
ドロップダウンメニューのオプションを非表示にする必要がありますが、同時に、このオプションの「値」を選択した値として表示する必要があります。たとえば、「閉じる」ドロップダウンには「I'M THE CHOSEN ONE」という値が表示されますが、メニューをクリックして開くと、表示されるオプションは「hello、asd、wer、qwe」のみになります。