我的网页中有一个多标签,它的类都是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>");
}
}
你能帮我解决这个问题,也许优化我已经做的代码。
2条答案
按热度按时间q1qsirdb1#
您只是有一些语法错误,例如,您设置了priceToPay,然后在最后一行代码中使用了price_toPay。另外,jQuery.append()方法将您的内容设置为textContent而不是HTML,而是使用innerHTML。我添加了一个按钮供您单击,这样您就可以看到之前和之后的效果。请参见下文
第一个
pgpifvop2#
如果你想以“jQuery方式”从字符串构建元素,你必须使用
$
构造函数:替换:
签署人:
正如您在jQuery中看到的那样,您还可以链接调用,并使用
.html()
或.text()
专用函数。html
更适合这里,因为您希望删除元素中的所有内容,而不仅仅是文本部分请注意,我还将您的
$(".price")[i]
更正为$(price[i])
,使用您循环的var比执行新的jQuery选择更安全,并假设它将具有与循环中相同的索引