Javascript Meteor js,body.helper函数getElementsByTagName
我正在玩MeteorJS,我正在尝试在Template.body.helpers中创建一个函数,以便在数组中获取我的img标记Javascript Meteor js,body.helper函数getElementsByTagName,javascript,dom,meteor,Javascript,Dom,Meteor,我正在玩MeteorJS,我正在尝试在Template.body.helpers中创建一个函数,以便在数组中获取我的img标记 if (Meteor.isClient) { Template.body.helpers({ place: function(){ var images = document.getElementsByTagName('img') console.log(images) console.log(typeof images
if (Meteor.isClient) {
Template.body.helpers({
place: function(){
var images = document.getElementsByTagName('img')
console.log(images)
console.log(typeof images)
for(k in images)
console.log(k)
return images
}
}
[]我得到了这个我无法访问的对象
对象是从typeof返回的
控制台(k)显示
长度,
项目,及
命名主义
但如果我使用控制台,我可以得到我的两个图像,并使用它们,不像这个代码
这是浏览器中的输出
[对象HTMLCollection]
我要做的就是收集数组中的图像,然后获取alt标记
[]
0: img.toon
1: img.toon
length: 2
proto: HTMLCollection
这是我从console.log(images)获取的对象。但是如果我尝试图像[0],我会得到未定义的图像
谢谢你的帮助
所以我添加了一个带有点击事件的按钮来触发相同的代码,我得到了预期的图像数组。。。如果我将原始代码包装在document onload函数中,它似乎不会运行。实际上,您应该将主代码放入
Template.body.onRendered
中,因为DOM准备就绪时需要等待
如果您试图收集alt
属性值,则类似的方法应该有效:
Template.body.onRendered(function() {
var images = document.getElementsByTagName('img');
var imagesAlts = [];
for (var k = 0; k < images.length; k++) {
imagesAlts.push(images[k].getAttribute('alt'));
}
Session.set('imagesAlts', imagesAlts);
return;
});
Template.body.helpers({
place: function() {
var imagesAlts = Session.get('imagesAlts')
console.log(imagesAlts);
return imagesAlts;
}
});
Template.body.onRendered(函数(){
var images=document.getElementsByTagName('img');
var=[];
对于(var k=0;k
注意:您可以使用
document.images
而不是document.getElementsByTagName('img')
实际上,您应该将主代码放在Template.body.onRendered
中,因为DOM准备就绪时需要等待
如果您试图收集alt
属性值,则类似的方法应该有效:
Template.body.onRendered(function() {
var images = document.getElementsByTagName('img');
var imagesAlts = [];
for (var k = 0; k < images.length; k++) {
imagesAlts.push(images[k].getAttribute('alt'));
}
Session.set('imagesAlts', imagesAlts);
return;
});
Template.body.helpers({
place: function() {
var imagesAlts = Session.get('imagesAlts')
console.log(imagesAlts);
return imagesAlts;
}
});
Template.body.onRendered(函数(){
var images=document.getElementsByTagName('img');
var=[];
对于(var k=0;k
注意:您可以使用
document.images
而不是document.getElementsByTagName('img')
1)您可以编辑您的帖子,不需要在评论中添加信息。2) 请正确缩进您的代码。1)您可以编辑您的帖子,不需要在评论中添加信息。2) 请正确缩进代码。谢谢Andrea,我已经看过onRendered函数了。谢谢Andrea,我已经看过onRendered函数了。