我有这段代码:
var $ispan = $(window.test.document.getElementsByTagName("span"));
for (var i=5; i<$ispan.size(); i++) {
$('.content').append('<br>' + $ispan[i].text());
};
所以$ ispan包含一组跨度。我试图将这些跨度的特定选择附加到我的身体上。
代码失败了$ispan[i].text()
为什么这不起作用,应该怎么做?
答案 0 :(得分:2)
方括号从jQuery对象/集合返回特定的DOM节点,而不是jQuery对象;失败的原因是本机DOM节点没有text()
方法。所以,你应该使用:
$('.content').append('<br>' + $ispan.eq(i).text());
请注意,在链接的“概念验证”中,我修改了追加元素的方法,将其切换为:
$ispan.eq(i).text('span ' + (i+1)).appendTo('.content').before('<br />');
这是因为,通过上面写的方法(您说工作,在评论中),[Object object]
元素中的输出很多.content
。
上面的替代方法找到jQuery对象中的相关元素,设置其文本,将其附加到 此外,您的原始选择器应该被 您在其他地方的评论中说,您需要处理 参考文献:.content
元素,然后在附加元素之前插入<br />
。 / p>
$('span')
充分替换,而不是过于复杂的jQuery包装的本机DOM选择器。span
个for() {...}
个:gt()
元素,我假设您使用的是var $ispan = $("span:gt(4)");
$ispan.text(function (i) {
return 'span ' + (i + 6);
}).appendTo('.content').before('<br />');
,您可以而是使用{{1}}:{{1}}
答案 1 :(得分:0)
尝试:
var $ispan = $('span');
$ispan.each(function(index) {
if(index > 3)
$('.content').append('<br>' + $(this).text());
};
答案 2 :(得分:0)
你用jQuery编译了javascript。这不是必需的。仅使用javascript或jQuery。最值得推荐的。 使用eq()查找元素,并使用0开始for()。
试一试:
var ispan = $("span");
for (var i = 0; i < ispan.length; i++) {
$('.content').append('<br>' + ispan.eq(i).text());
};