使用jQuery

时间:2018-07-15 23:46:09

标签: jquery html

嗨,我遇到了一个问题,我要从div类获取文本,然后使用以下命令将其插入到h1中:

var newHeadingText = $(".list-group-item.active").text();
$("#content-wrap").prepend("<h1 class=\"newHeading\">" + newHeadingText + "</h1>");

被调用的文本包含一个数字(取决于购物车中的数字)和一个特定的文本字符串。 “ Premium Tablets 3Items in cart”。

我要删除购物车中的#个项目。

我可以删除文本:

$(".newHeading:contains('Items in cart')").html(function(_, html) {
    return html.replace(/Items in cart/g, '');
});

但是因为有时候“ Premium Tablets”中有一个数字,例如“ Premium Tablets 12”,我只想删除直接出现在“购物车中的物品”之前的数字。

如何仅删除文本和前面的数字?

谢谢

3 个答案:

答案 0 :(得分:3)

编辑-我本来是误解了要求,因为问题指出“删除前一个号码”。这将替换/删除x items in cart

$(".newHeading:contains('Items in cart')").html(function(_, html) {
    return html.replace(/(\d+ items in cart)/gi, '');
});

请参阅:https://regex101.com/r/Nhh9Bf/1

原始

您可以使用“正面看”。这会删除Items in cart

之前的数字
$(".newHeading:contains('Items in cart')").html(function(_, html) {
    return html.replace(/(\d+ )(?=items in cart)/gi, '');
});

请参阅:https://regex101.com/r/irn5Sq/1/

或者,请考虑将x items in cart包装在带有类的范围中。这给您带来了两个好处,您现在可以根据需要设置该片段的样式以使其更加突出,并且您现在拥有一个可用于轻松修改字符串的钩子。您甚至可以将其扩展为显式包装数字。

答案 1 :(得分:0)

这种方法将元素分成2面,其中一个是购物车中的项目,一个是数字。如果您的电话号码始终附加在购物车中“物品”的左侧,则应始终获取该电话号码(无论长度如何)并将其取出。

#include<array>
function remove_string() {
  var str = "Jelly Ranchers 12 Items in Cart";
  var string_split = str.split("Items in Cart");
  var sub_split = string_split[0].split(" ");
  var number_split = sub_split[sub_split.length - 2];
  var right_string = str.replace("Items in Cart","");
  var final_str = right_string.replace(number_split,"");
  console.log(final_str);
}

答案 2 :(得分:0)

我找到了一个简单的解决方案。

$(".newHeading:contains('Items in cart')").html(function(_, html) {
   return html.replace(/[0-9]Items in cart/g, '');
});