解决方案
您必须指定.s-text
要选择的元素,在这种情况下,是 selected的子.separator
元素。
解释
$.each()
,或者$('selector').each()
将遍历与您提供的选择器查询对应的所有元素。
每次进入循环时,都会选择对应元素数组的索引对应的特定元素并将其分配给变量this
。
this
是一个 DOMElement,而不是一个 JQuery 对象。这就是为什么我们把它放在括号内,$
在它上面调用 JQuery() 对象:$(this)
.
JavaScript/jQuery
$(".separator").each(function()
{
var linewidth = 706 - $(this).find(".s-text").width();
$(this).find(".s-line").width(linewidth);
});
纯 JavaScript
var sep = document.getElementsByClassName('separator');
for (var i in sep)
{
if(sep[i].nodeType==1)
{
var linewidth = 706 - sep[i].querySelector('.s-text').offsetWidth;
sep[i].querySelector('.s-line').style.width = linewidth+"px";
}
}