gpt4 book ai didi

javascript - 将多个元素的宽度显示为文本的最佳方法

转载 作者:行者123 更新时间:2023-12-03 02:14:02 24 4
gpt4 key购买 nike

您好,我正在寻找指定页面上大量对象的宽度并将每个对象的宽度显示为文本的方法。主要目的是避免在任何地方(无论是在 HTML、CSS 还是 JS 中)多次引用宽度,但我在一个页面上可能需要数千个这样的对象(目前我指定了 div 的宽度和其中的文本)它——效率太低了!)。

到目前为止我有这个:https://jsfiddle.net/ghostfood/d6acdhq6/17/

<body onLoad="myFunction()">
<div id="object1" class="voteshare1" style="width:40.6%;">
This one is <span id="percentage1"></span></div>
<div id="object2" class="voteshare2" style="width:20.4%;">
This one is <span id="percentage2"></span></div>
<div id="object3" class="voteshare3" style="width:10.2%;">
This one is <span id="percentage3"></span></div>

<script>
function myFunction() {
var x1 = document.getElementById("object1").style.width;
var x2 = document.getElementById("object2").style.width;
var x3 = document.getElementById("object3").style.width;
document.getElementById("percentage1").innerHTML = x1;
document.getElementById("percentage2").innerHTML = x2;
document.getElementById("percentage3").innerHTML = x3;
}
</script>
</body>

宽度必须是百分比,但理想情况下不会在显示的文本中包含百分比符号(不确定它是如何做到的,因为这是我在网上找到的一个示例,然后做了一些修改 - 我不太了解 JS)。

我已经简单地研究过 D3 和 amcharts,但我不确定它们是否最适合在一个页面上处理数百个小型堆叠条形图,并且具有大量 CSS 控制,这正是我所需要的。我很可能是错的!

摘要:帮助我找出一种更有效的方法来获取和显示对象内的(百分比)宽度(在 HTML 或 JS 中手动设置,范围为 10% 到 100%)作为文本(需要注意的是,我需要对一页上的数千个小对象执行此操作)。

最佳答案

为所有想要获取宽度的div设置一个公共(public)类。
使用 getElementsByClassName()
选择所有内容循环遍历每一个以获得其宽度。
找到 children span 并将字符串添加到其中。
见下文

function myFunction() {
var elements = document.getElementsByClassName("voteshare");
for (var i = 0; i < elements.length; i++){
var thisElement = elements[i];
var thisWidth = thisElement.style.width.toString();
thisElement.children[0].textContent += thisWidth;
}
}
<body onLoad="myFunction()">
<div id="object1" class="voteshare" style="width:40.6%;">
<span id="percentage1">This one is </span>
</div>
<div id="object2" class="voteshare" style="width:20.4%;">
<span id="percentage2">This one is </span>
</div>
<div id="object3" class="voteshare" style="width:10.2%;">
<span id="percentage3">This one is </span>
</div>
</body>

关于javascript - 将多个元素的宽度显示为文本的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49435404/

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