Javascript 顺序选择列表按文本 alphe 而不是值
Javascript order select list by text alphe and not value
我的JS调用我的数据,构建动态3级选择选项菜单非常好
我更改了类别选择选项的文本,它也在工作..现在我必须重新排序 ma 选择列表,不是在选项值上,而是按照 alpha 文本顺序。
我的 JS :
if (window.XMLHttpRequest) {
oXmlhttp = new XMLHttpRequest();
} else if (window.ActiveXObject) {
oXmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
function selectManufacturer(id) {
document.getElementById('subcategory').innerHTML = "";
oXmlhttp.open('POST',"recherche-listesderoulantes-resultats.php");
oXmlhttp.onreadystatechange=function() {
if (oXmlhttp.readyState==4 && oXmlhttp.status == 200) {
leselect = oXmlhttp.responseText;
document.getElementById('category').innerHTML = leselect;
}
var strMessage1 = document.getElementById("category") ;
strMessage1.innerHTML = strMessage1.innerHTML
.replace('option value="13446">XXXXX</option>','<option value="13446">NEW TEXT 1</option>')
.replace('option value="13449">YYYYY</option>','<option value="13449">NEW TEXT 2</option>');
}
oXmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
var data = 'q=m&id='+id;
oXmlhttp.send (data);
}
function selectCategory(manufacturer,category) {
oXmlhttp.open('POST',"recherche-listesderoulantes-resultats.php");
oXmlhttp.onreadystatechange=function() {
if (oXmlhttp.readyState==4 && oXmlhttp.status == 200) {
leselect = oXmlhttp.responseText;
document.getElementById('subcategory').innerHTML = leselect;
}
}
oXmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
var data = 'q=c&manufacturer='+manufacturer+'&id='+category;
oXmlhttp.send (data);
我的网页
<form method="get" action="recherche-listesderoulantes-resultats.php">
<select style="width: 80%" id="manufacturers_id" name="manufacturers_id" onchange="selectManufacturer(this.value);">
<option value='-1'>Select</option>
<option value="1739" >Brand</option><option value="5794" >Brand 1</option>$<option value="1753" >Brand 2</option></select>
<div id='category' style='display:inline'>
</div>
<div id='subcategory' style='display:inline'>
</div>
</form
现在一切都还可以,但我试图理解如何在替换变量后使用文本 alpha 值而不是值选项对类别列表进行新排序......
谢谢!!!
虽然不能对元素使用 JavaScript 排序,但可以从选项元素的文本创建一个数组,然后重置选项元素的文本,如下所示:
var sel = document.getElementById('manufacturers_id');
var asel = [];
for (var i=1; i<sel.length; i++) { //omit Select
asel.push(sel[i].text);
}
asel.sort()
for (var j=0; j < asel.length;j++) {
sel[j+1].text = asel[j];
alert(sel[j+1].text);
}
请参阅 jsfiddle 注意,我将品牌 1 文本更改为品牌 3,以说明选择下拉列表反映了新的排序顺序。
相关文章:
- 如何使用jquery在填充自动完成的值后使文本框只读
- 使用Clipboard.js复制span文本
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 用程序搜索JQuery数据表中的文本
- jQuery匹配JSON对象的部分文本
- onkeyup无法动态创建多个文本区域
- 如何在下面的ES6循环中获得前面的文本
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 让文本输入幻灯片显示输入时的新文本输入?然后向后滑动
- 借助asp.net验证或java脚本对多个文本进行验证
- 无法在ajaxStart中更改跨度文本
- 高亮显示时编辑文本大小和颜色
- jquery中的文本框验证
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- Sails.js:同时发布文本输入和一个文件
- 当鼠标悬停在文本中的单词上时显示警报
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- 将纯文本URL转换为可单击链接
- 如何使用nodes和.createElement(“b”)将文本加粗
- Javascript 顺序选择列表按文本 alphe 而不是值