js 错误的字符串输出
js wrong string output
我需要从这个字符串中得到正确的 valeu,我做错了什么?
var i = 0;
var ret = '<option value="19">Dep_01_01</option><option value="20">Dep_01_02</option>';
var pre = ret + '<option value="0">NON</option>';
var count = $($.parseHTML(pre)).filter('option').length;
console.log(pre);
for(i=0; i < count; i++){
var val_drop = $($.parseHTML(pre)).filter("option[value*='" + i + "']").val();
var text_drop = $($.parseHTML(pre)).filter("option[value*='" + i + "']").text();
console.log(val_drop);
}
输出为:
<option value="19">Dep_01_01</option><option value="20">Dep_01_02</option><option value="0">NON</option>
20
19
20
但正确的输出应该是:
19
20
0
你不需要任何函数来做到这一点
var ret = '<option value="19">Dep_01_01</option><option value="20">Dep_01_02</option>';
var pre = ret + '<option value="0">NON</option>';
$(pre).each(function(){
$('#result').append($(this).val()+" <-----> "+$(this).html()+"<br>");
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="result">
相同的方法:
var i = 0;
var ret = '<option value="19">Dep_01_01</option><option value="20">Dep_01_02</option>';
var pre = ret + '<option value="0">NON</option>';
var count = $($.parseHTML(pre)).filter('option').length;
$.each($.parseHTML(pre),function(i,item){
console.log($(item).val());
});
工作小提琴:https://jsfiddle.net/vhapd1un/
我用 split() 做到了;看看它是否有帮助。
<script>
var i = 0;
var ret = '<option value="19">Dep_01_01</option><option value="20">Dep_01_02</option>';
var pre = ret + '<option value="0">MON</option>';
var count = $($.parseHTML(pre)).filter('option').length;
console.log(count);
console.log(pre)
for(i=0; i < count+1; i++){
var val_drop = pre.split('<option value="');
val_drop = val_drop[i].split('"')[0];
console.log(val_drop);
}
</script>
首先将元素选项添加到选择中"。
var ret = '<option value="19">Dep_01_01</option><option value="20">Dep_01_02</option>';
var options = ret + '<option value="0">MON</option>';
var elem_txt = '<select>' + options + '</select>'
// Get a DOM object
var elem = $.parseHTML(elem_txt)
var options = elem.find('option')
// for loop
for(var i=0; i<options.length; i++) {
console.log($(options[0]).val());
}
//jQuery each
options.each(function () {
console.log($(this).val());
})
您不必每次都使用 parseHTML 重新创建 DOM 对象。
在您的测试中,[value*=...] 的匹配似乎将索引作为字符串匹配,因此您有:
这:
- 索引:0 -> 20(存在 0)
- 索引: 1 -> 1 9 (存在 1 )
- 索引: 2 -> 2 0 (存在 2)
我很确定,如果你从 0 到 3 做,你会遇到 3 的问题,因为没有什么与 css 规则匹配。
相关文章:
- 如何将angularjs中的javascript字符串输出为循环数组
- Javascript将数组转换为字符串并使其反向输出
- 以字符串形式输出Javascript中的日期
- 编辑输出字符串函数ol.control.MouseControl
- jQuery从选项的输出字符串中选择HTML选项
- 使用日期差来输出字符串
- 如何让杰克逊在输出字符串中转义脚本>
- 从输出字符串中消除空字符串
- 从后台代码输出字符串到新页面或窗口
- 格式化XMLSerializer()的输出字符串.serializetostring
- 逐字输出字符串的最后两行
- JSON.将输出字符串化以显示在表中
- 反转输出字符串的顺序
- 输出字符串中两个变量的加/减/乘/除
- PHP如何输出字符串到html
- 需要一个Firefox ctypes输出字符串参数的工作示例
- 如何制作输出字符串的Three.js着色器
- Javascript:JSFiddle 的问题 - 输出字符串的简单 onclick 事件不起作用
- 我如何在Ember中输出字符串,同时仍然由把手解释它
- Javascript -使用innerHTML输出字符串*WITHOUT* html编码的特殊字符