You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用jQuery将兄弟元素子节点文本值设为元素CSS width属性值

问题原因

你的原始代码不生效的核心是$(this)的指向不符合预期:你直接向.css()方法传入取值表达式时,该表达式会立即执行,此时this指向的是外层作用域对象(通常是window),无法指向你选中的每个.progress-bar-percentage元素,自然拿不到对应相邻节点的百分比值。

修复方案

你可以通过遍历每个目标元素的方式修正this指向,有两种常用写法:

写法1:用.each()显式遍历

$('.progress-bar-percentage').each(function() {
  // 遍历过程中this指向当前正在处理的.progress-bar-percentage元素
  const targetWidth = $(this).siblings('.percentage-script').find('.percentage-value').text();
  $(this).css('width', targetWidth);
});

写法2:使用.css()方法的回调参数(更简洁)

jQuery的.css()方法支持第二个参数传入回调函数,回调的返回值会作为属性设置值,且回调内部的this自动指向当前处理的元素:

$('.progress-bar-percentage').css('width', function() {
  return $(this).siblings('.percentage-script').find('.percentage-value').text();
});

额外注意事项

要让百分比宽度生效,需要确保两个样式前提:

  • 父元素.progress-bar-total已经设置了明确的宽度值
  • .progress-bar-percentage元素的display属性为block/inline-block,且没有设置max-width等属性限制宽度

内容的提问来源于stack exchange,提问作者Paul Rodriguez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 08:18:01