jquery - 使用 jQuery 清理数据,将数字包装在 <dd> 中并将文本包装在 <dt> 中

标签 jquery match

我能够将长字符串转换为 dl 列表,如下所示:

 <div class="classA">
   <dl id="idA"> Display # 252215425:  </dl>
   <dl id="idB">3 Apples   </dl>
   <dl id="idC">3 Peaches   </dl>
   <dl id="idD">10 Seadless Watermelons   </dl>
   <dl id="idE">23 Bananas </dl>
 </div>

我想要的结果是:

 <div class="classA">
   <dl id="idA"> 
       <dd>252215425</dd>
       <dt>Display #</dt>
   </dl>

   <dl id="idB"> 
       <dd>3</dd>
       <dt>Apples</dt>
   </dl>

   <dl id="idC"> 
       <dd>3</dd>
       <dt>Peaches</dt>
   </dl>

   <dl id="idD"> 
       <dd>10</dd>
       <dt>Seadless Watermelons</dt>
   </dl>

   <dl id="idE"> 
       <dd>23</dd>
       <dt>Bananas</dt>
   </dl>
 </div>

我想要实现的目标: 1.将每个dl内容拆分成一个数组 2. 查找数字并将其保存到“n”中 3.查找文本并将其保存在“w”中 4. 用“dd”标签包裹“n” 5. 用“dt”标签包裹“w” 6.“n”和“w”不应有前导和尾随空格

这是我想出的代码,但它不起作用......

$("div.classA dl").each(function(){
      var a = $("div.classA dl").html();
      a = a.split(' ');
      var n = a.match(/d+/);
      var w = a.match(/D+/);
      $("div.classA dl").text('');
      $("div.classA dl").append('<dd>'n'</dd>');
      $("div.classA dl").append('<dt>'w'</dt>');

});

最佳答案

差不多就是这样,但是您的代码中有一些小问题:

  1. 要匹配数字,请使用 \d 而不是仅 dD 也是如此,它应该是 \D;
  2. match返回一个数组,因此需要访问它的第一个位置来获取匹配的值;
  3. $.each 已经迭代了所有 dl,无需在循环的每次迭代中再次选择它们。只需使用 this 引用正在迭代的元素即可。

这是固定代码和 DEMO :

$("div.classA dl").each(function() {
  var $this = $(this);
  var text = $this.text();        
  var n = text.match(/\d+/)[0];
  var w = text.match(/\D+/)[0].replace(/^\s*|\s*$/g, '');

  $this.empty();

  $("<dd>").text(n).appendTo($this);
  $("<dt>").text(w).appendTo($this);
});​

关于jquery - 使用 jQuery 清理数据,将数字包装在 <dd> 中并将文本包装在 <dt> 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12592666/

相关文章:

javascript - 使用ajax将参数传递给我的servlet时获取错误对象对象

php - 将子字符串与占位符匹配

bash - 只显示grep的第n个匹配项

regex - Pig Hadoop 匹配默认值?

JQuery Mobile 100% 高度页面,等于可见区域

javascript - &lt;textarea&gt; 中的行与 JQuery 链接

Javascript/jQuery/JSON/localStorage 游戏,无法按数字排序排名表

javascript - 删除 td 中的垂直间隔符

php - php mysql 对两列进行排序

ruby - 如何输出数组中元素的索引,这些元素也在另一个数组中?