我在JSP文件上有以下选择:
<select id="order-select">
<option value="Lowest price" onclick="sortLowestPrice()"><spring:message code="list.lowest"/></option>
<option value="Highest price" onclick="sortHighestPrice()"><spring:message code="list.highest"/></option>
</select>
结果,我再也无法调用sortLowestPrice()或sortHighestPrice()了。 我知道我的JS可以工作,因为它上的其他功能可以在同一JSP中调用,并且可以正常工作。
以下是其中一项功能:
function sortHighestPrice() {
console.log("im here");
var publications = document.querySelectorAll(".polaroid-property");
var sort = [];
var father = document.getElementById("publications");
var i, j, k;
var max = null;
while (father.firstChild) {
father.removeChild(father.firstChild);
}
for(i = 0; i < publications.length; i++){
max = null;
for(j = 0; j < publications.length; j++){
if(publications[j].getAttribute("visited") != "true"){
var price = parseInt(publications[j].getElementsByClassName("price-tag")[0].innerHTML.substring(1));
if(price > max || max == null){
max = price;
k = j;
}
}
}
sort.push(k);
publications[k].setAttribute("visited",true);
}
for(i = 0; i < sort.length; i++){
publications[i].setAttribute("visited",false);
father.appendChild(publications[sort[i]]);
}
}
我从没在浏览器日志中看到“我在这里”。
答案 0 :(得分:2)
您可以侦听父项<option>
标记上的更改事件,而不是尝试监听每个<select>
上的点击事件,并从内部的DOM事件对象中检索所选选项的值。您的功能。见下文:
function sortHighestPrice(e) {
var optionValue = e.target.value;
}
<select onchange="sortHighestPrice(event)" id="order-select">
<option value="Lowest price" onclick="sortLowestPrice()">
<spring:message code="list.lowest"/>
option1
</option>
<option value="Highest price" onclick="sortHighestPrice()">
<spring:message code="list.highest"/>
option2
</option>
</select>
希望这会有所帮助!
答案 1 :(得分:1)
类似您的浏览器的声音不支持onclick在选项元素上。尝试使用其他元素类型,例如按钮(即保证onclick支持的某种元素)
这是我在chrome上遇到的问题。
答案 2 :(得分:-1)