jQuery 方法从一个表单元格解析产品价格/成本文本并移动到新的相邻单元格

发布于 2024-12-16 17:11:30 字数 427 浏览 2 评论 0原文

我正在为基于 jQuery 的产品列表网站编写一个书签,我需要遍历包含产品描述和成本的表的单元格,然后将该定价信息分离到其自己的单元格中。

<tr>
  <td>
    <div class="item" id="item-67601">Cricut Expression Cutting Machine - $119.00 <span class="db">*</span>   
    </div>
  </td>
</tr>

我不知道该怎么做,至少不使用 jQuery(或任何 jQ 插件),解析出该价格信息,以便我可以将其附加到新的相邻表格单元格。

我该怎么做呢?是否有一种更简单的方法可以用原生 JS 来代替,或者另外呢?我很好奇我的选择是什么。

I'm writing a bookmarklet for a jQuery-based product listing site, and I need to traverse the cells of a table that contain a product description with cost, and then separate that pricing info into its own cell.

<tr>
  <td>
    <div class="item" id="item-67601">Cricut Expression Cutting Machine - $119.00 <span class="db">*</span>   
    </div>
  </td>
</tr>

What I don't know how to do, at least not using jQuery (or any jQ plugin), is to parse out that price info, so that I can append it to a new adjacent table cell.

How might I go about doing this? Is there perhaps a simpler way to do it with native JS instead, or in addition? I'm curious what my options are.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

灰色世界里的红玫瑰 2024-12-23 17:11:30

也许只是在 - $ 上分割,这样你就有了一个包含名称和价格的数组。

类似于

$(".item").each(function(){
    var list = $(this).html().split(" - $");
    var name = list[0];
    var price = parseFloat(list[1]);
    alert(name + " with the price of $" + price);
});

Live 示例: http://jsfiddle.net/WPy7p/1/

使用正则表达式:

$(".item").each(function(){
    var matched = /(.*) - \$(.*) <sp.*/g.exec($(this).html())

    var name = matched[1];
    var price = matched[2];
    alert( name + "with the price " + price);
});

Live示例: http://jsfiddle.net/WPy7p/3/

Maybe just split on - $ so you have an array with the name, and the price.

Something like

$(".item").each(function(){
    var list = $(this).html().split(" - $");
    var name = list[0];
    var price = parseFloat(list[1]);
    alert(name + " with the price of $" + price);
});

Live example: http://jsfiddle.net/WPy7p/1/

With regular expression:

$(".item").each(function(){
    var matched = /(.*) - \$(.*) <sp.*/g.exec($(this).html())

    var name = matched[1];
    var price = matched[2];
    alert( name + "with the price " + price);
});

Live example: http://jsfiddle.net/WPy7p/3/

宛菡 2024-12-23 17:11:30

这应该可以解决问题。

var val = $('.item').val(),
    price, des;
    price = parseInt(val, 10);
    des = val.replace(' - 
+price, '');

This should do the trick.

var val = $('.item').val(),
    price, des;
    price = parseInt(val, 10);
    des = val.replace(' - 
+price, '');
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文