各位小伙伴们下午好
我在处理一些 jQuery 代码时遇到了问题,我似乎无法理解这个问题。
情况如下:
我正在制作(基于mysql-entries)几个div。如果我先向您展示结果,也许会更好:
<div class="shipcontainer" id="shipcontainer1">
<div class="timelinecontainer" id="timelinecontainer1">timeline--></div>
<div class="travelsall" data-ship="1">
<div class="travelcontainer" data-travelid="1" data-ship="1" id="travelcontainer1">
<div class="fasecontainer" data-travelid="1" data-ship="1">
<div class="Mobilize travelfase" date-days="6" date-fasetravelid="1">1: Mobilize </div>
<div class="Loading travelfase" date-days="12" date-fasetravelid="1">2: Loading</div>
<div class="Boating travelfase" date-days="20" date-fasetravelid="1">3: Boating</div>
<div class="Discharge travelfase" date-days="6" date-fasetravelid="1">4: Discharge</div>
</div>
<div class="options" id="optionstravel1" data-travelid="1">OPTIONS</div>
</div>
</div>
</div>
如您所见,我有一个shipcontainerdiv。在我有两个子 div(timelinecontainer 和 travelsall)。后者在此示例中仅包含一个“.travelcontainer”,但将来会更多。
这段代码重复了几次,(我目前有两个“.shipcontainers”)。
我想要实现的是将带有“.travelcontainer”的div的宽度设置为带有“.travelfase”的四个div的宽度之和。这是我的 jQuery 代码:
var totalWidth = 0;
$(".travelcontainer").width(function () {
var travelID = $(this).data(travelid);
$(this).find('div[data-fasetravelid=' + travelID + ']').each(function (index, element) {
totalWidth = $(this).innerWidth() + totalWidth;
});
return totalWidth;
});
因为,在它通过 PHP 解析的过程中,我给了“.travelcontainer”一个 data-travelid 属性,它也是“.travelfase”的孙子。我想我可以通过这种方式将它们结合在一起。
问题是,当我有 2 个船舶集装箱时,两个“旅行集装箱”都会将所有值加在一起。因此,具有 data-travelid=1 的 travelcontainer 的宽度与所有具有 travelfase 类的 div 的宽度完全相同,而不仅仅是具有 data-fasetravelid=1 属性的 div。
我也试过这段代码(我之前用过):
var widthTotal = 0;
$(".travelcontainer").width(function () {
$(".travelcontainer > .travelfase").each(function (index, element) {
widthTotal = $(this).innerWidth() + widthTotal;
});
});
return widthTotal;
这也有同样的效果。
有人看到我在这里做错了吗?
提前致谢!