我有一个脚本可以从HTML子树中获取所有子项,这些子树是文本类型。我写了但是它并没有为任何节点而烦恼
$(document).ready(function () {
var result;
$.each($("li").contents(), function(i, v){
if(v.nodeType == 3){
result = result + " " + v.nodeValue;
}
});
alert(result);
});
答案 0 :(得分:2)
您需要将result
初始化为空字符串:
var result = '';
如果没有,则result
初始化为undefined
和
undefined + 'someString' === 'undefinedsomeString'
答案 1 :(得分:1)
试试这个:
$(document).ready(function () {
var result = "";
$("li").each(function() {
result += $(this).text();
});
alert(result);
});
答案 2 :(得分:0)
在ES6中,我认为这更具可读性:
var result = [].slice.call($("li").contents())
.filter(v => v.nodeType == 3)
.map(v => v.nodeValue)
.join(' ');
alert(result);
在ES5中,它更详细:
var result = [].slice.call($("li").contents())
.filter(function(v){ return v.nodeType == 3; })
.map(function(v){ return v.nodeValue; })
.join(' ');
alert(result);