从Jquery

时间:2016-09-25 10:34:45

标签: javascript jquery html css

我有很多课程,如果有任何逗号,请删除其中的逗号。

我编写了以下代码,但代码无法正常工作。第二个类值替换为第一个值。



   
var removebox = $(".remove"),
removeboxHtml = removebox.html();
removebox.html(removeboxHtml.replace(/,/g , ''));

<html>
  <head>
    <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.12.4.min.js"></script>
  </head>
  <body>
    <span class="remove">,17500000</span>
    <span class="remove">,2479000</span>
  </body>
</html>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:9)

试试这个。更新了您的代码:

   

$(".remove").each(function(){
   
    $(this).html($(this).html().replace(/,/g , ''));
});
   
<html>
<head>
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.12.4.min.js"></script>
</head>
<body>
<span class="remove">,17500000</span>
<span class="remove">,2479000</span>
</body>
</html>

答案 1 :(得分:3)

我会迭代每个元素并更改其'text:

var removebox = $(".remove");

removebox.each(function () {

  var oldtext = $(this).text();

  $(this).text(oldtext.replace(',', ''));

});

答案 2 :(得分:1)

虽然您已经接受了这个问题的答案,但值得指出的是,他们都过于冗长,并且有一个答案,shennan's(在撰写本文时) ),如果其中存在多个逗号,则只会从每个给定元素中删除一个逗号。

也就是说,下面是一个更简洁的版本:

// select the elements to update:
$('.remove')

  // we then use the text method's anonymous function,
  // using the two arguments:
  // index: the index of the current element in the collection,
  // currentText: the text of the current element of the
  // collection over the text method iterates:
  .text(function(index, currentText) {

    // here we access the currentText variable and use
    // String.prototype.replace(), with a regular literal (/.../)
    // to remove all occurrences (g) of the specified comma character
    // replacing those occurrences with an empty string (''); this
    // is comma-removed string is returned to the text method in
    // order to update the text of each element as required:
    return currentText.replace(/,/g, '');
});

&#13;
&#13;
$('.remove').text(function(index, currentText) {
  return currentText.replace(/,/g, '');
});
&#13;
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.12.4.min.js"></script>
<span class="remove">,17500000</span>
<span class="remove">,2479000</span>
<span class="remove">5,279,000</span>
&#13;
&#13;
&#13;

当然,值得表明上述内容在纯JavaScript中完全可行,并且仍然相对简洁:

// we use document.querySelectorAll() to retrieve
// a non-live HTMLCollection of elements matched
// by the supplied CSS selector:
var elements = document.querySelectorAll('.remove');

// we use Array.from() to convert an Array-like Object
// into an Array, in order that we can then iterate
// over those elements using Array.prototype.forEach():
Array.from(elements).forEach(function(elem) {
  // 'elem', the first argument, is a reference to the
  // current element of the Array of elements over
  // which we're iterating.

  // here we retrieve the current text-content of the
  // current element, and use String.prototype.replace(),
  // with a regular expression (exactly as above) to
  // replace all occurrences ('g') of the comma character
  // (',') in the string supplied by elem.textContent and
  // we replace those commas with a empty string (''):
  elem.textContent = elem.textContent.replace(/,/g, '');
});

&#13;
&#13;
var elements = document.querySelectorAll('.remove');

Array.from(elements).forEach(function(elem) {
  elem.textContent = elem.textContent.replace(/,/g, '');
});
&#13;
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.12.4.min.js"></script>
<span class="remove">,17500000</span>
<span class="remove">,2479000</span>
<span class="remove">5,279,000</span>
&#13;
&#13;
&#13;

参考文献: