css 使用循环拆分多个同名类

7hiiyaii  于 2022-11-19  发布在  其他
关注(0)|答案(2)|浏览(148)

我的网页中有一个多标签,它的类都是price。

<p class="price">Price: 45$</p>
<p class="price">Price: 32$</p>

我需要在最后是分开价格文本在一个跨度和价格在另一个,使它将是这样的

<p class="price"><span class='h1'>Price:</span> <span class="h2">45$</span></p>

这就是我目前所做的,但问题是span不是一个标记,而是作为一个简单的字符串插入

let price = $(".price");
for (let i = 0; i < price.length; i++) {
    let priceTitle = price[i].innerText.split(":")[0];
    let priceToPay = price[i].innerText.split(":")[1];
    price[i].innerText = ''; //Delete content of price
    

    $(".price")[i].append("<span class='h1'>"+ priceTitle+"</span> <span class='h2'>"+ priceToPay +"</span>");

}

}

你能帮我解决这个问题,也许优化我已经做的代码。

q1qsirdb

q1qsirdb1#

您只是有一些语法错误,例如,您设置了priceToPay,然后在最后一行代码中使用了price_toPay。另外,jQuery.append()方法将您的内容设置为textContent而不是HTML,而是使用innerHTML。我添加了一个按钮供您单击,这样您就可以看到之前和之后的效果。请参见下文
第一个

pgpifvop

pgpifvop2#

如果你想以“jQuery方式”从字符串构建元素,你必须使用$构造函数:
替换:

price[i].innerText = ''; //Delete content of price
$(".price")[i].append("<span class='h1'>"+ priceTitle+"</span> <span class='h2'>"+ priceToPay +"</span>");

签署人:

$(price[i]).html('').append( $("<span class='h1'>"+ priceTitle +"</span> <span class='h2'>"+ priceToPay +"</span>") );

正如您在jQuery中看到的那样,您还可以链接调用,并使用.html().text()专用函数。html更适合这里,因为您希望删除元素中的所有内容,而不仅仅是文本部分
请注意,我还将您的$(".price")[i]更正为$(price[i]),使用您循环的var比执行新的jQuery选择更安全,并假设它将具有与循环中相同的索引

相关问题