gpt4 book ai didi

JavaScript 仅识别第一个 a 标记

转载 作者:行者123 更新时间:2023-11-28 12:15:44 26 4
gpt4 key购买 nike

我正在尝试存储 a-marker 标签的 id 属性,代码工作正常,只是 JavaScript 只识别第一个 a-marker 标签而不识别第二个。

<script>
var place;
AFRAME.registerComponent('markerhandler', {
tick: function () {
if (document.querySelector('a-marker').object3D.visible == true) {
el = document.querySelector('a-marker');
console.log("gogogo");
place = el.getAttribute('id');
console.log(place);
} else {
el = null;
place = null;
}
}
});
</script>

<body style='margin : 0px; overflow: hidden;'>
<a-scene embedded arjs>

<a-marker preset="kanji" id="2">
<a-box position='0 0.5 0' material='opacity: 0.5;' markerhandler>
</a-box>
</a-marker>

<a-marker preset="hiro" id="1">
<a-box position='0 0.5 0' material='opacity: 0.5;' markerhandler>
</a-box>
</a-marker>

</a-scene>

Codepen of the problem

包含有问题的代码片段和可用版本的代码笔。如果我切换 a 标记的顺序,则只有第一个在控制台中打印出来。只是为了确认我没有同时向相机显示两个标记。

对此的任何指示都会很棒。

谢谢。

最佳答案

document.querySelector() 仅返回 the first matching element

您可能正在寻找document.querySelectorAll()它返回一个匹配元素的数组,您可以迭代并执行检查。

<小时/>
var markers = document.querySelectorAll('a-marker');

for (var i = 0; i < markers.length; i++) {
if (markers[i].object3D.visible == true) {
place = markers[i].getAttribute('id');
}
}

var visibleMarker = markers.filter(function(marker) {
return marker.object3D.visible;
})[0];

if (visibleMarker) {
place = visibleMarker.getAttribute('id');
}

关于JavaScript 仅识别第一个 a 标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49967971/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com