我们有以下脚本在更改下拉列表时运行 - 根据所选的货币代码更新价格。这基本上获取了下拉列表的值,并更新了页面上文本中的 priceamm 和 preicecurr 字段。
<script>
function run() {
var f = document.getElementById("dropPrice");
priceamm.innerHTML = f.options[f.selectedIndex].value;
var e = document.getElementById("dropPrice");
pricecurr.innerHTML = e.options[e.selectedIndex].text;
}
HTML
<select id="dropPrice" onchange="run()" class="fa-select">
<option value = "a">aaa</option>
<option value = "b">bbb</option>
问题 现在,我们还希望在加载页面时将下拉列表加载到其中一个选项(选定)( onload )。我们可以填充文本中的变量,但不能填充显示选项 bbb 的下拉列表。在PHP中这很容易,但我们有点迷失javascript。我们尝试在这些行上加载但不起作用:
document.getElementById("dropPrice").value = "<?php echo $geo_price ;?>";
使用jQuery这可能更容易,但再一次没有运气:
window.onload = function() {
jQuery(document).ready(function($){
document.getElementById('dropPrice').find('option[value=<?php echo $geo_price ;?>]').attr('selected','selected');
});
}
感谢任何帮助。感谢
答案 0 :(得分:1)
jQuery选择器部分不正确。你正在混合普通的JS和jQuery。当你调用document.getElementById('dropPrice')时,会返回一个常规的DOM元素,但是你会调用find,这是一个在jQuery元素上使用的jQuery方法。所以,你需要包装第一部分来返回一个像这样的jQuery元素:
$(document.getElementById('dropPrice'))
.find('option[value="b"]').attr('selected', true);
或者,首先通过jQuery选择它,如:
$('#dropPrice [value="b"]');
然而,你的第一个例子:
document.getElementById("dropPrice").value = "b";
应该工作。这让我想知道PHP回应的值是否正确和/或是否抛出其他JS错误会导致代码无法运行。