代码之家  ›  专栏  ›  技术社区  ›  HenryDev

如何删除jquery中nnumber的第一个字符?

  •  0
  • HenryDev  · 技术社区  · 10 年前

    我正在尝试删除我的数字的第一个字符,但我不知道为什么它不起作用。执行代码后,我想得到这些数字:

    3032659875

    3032369875

    5456663323

    3265333333

    3032659898

    有什么帮助吗??谢谢!

    这是我的代码:

    <table>
    <tr>
     <td class = "usersPhoneNumber">13032659875</td>
    </tr>
    <tr>
     <td class = "usersPhoneNumber">13032369875</td>
    </tr>
    <tr>
    <td class = "usersPhoneNumber">15456663323</td>
    </tr>
    <tr>
    <td class = "usersPhoneNumber">13265333333</td>
    </tr>
    <tr>
    <td class = "usersPhoneNumber">13032659898</td>
    </tr>
     </table>
    

    J查询

     $(document).ready(function (){
                var theNumber = $(".usersPhoneNumber");
                if ((theNumber.text()).length === 11) {
                    var val = $(this).html();
                    $(this).html(val.substring(1, val.length));
                }
        });
    

    现场演示 https://jsfiddle.net/henrygranados/mLar8bja/

    6 回复  |  直到 10 年前
        1
  •  3
  •   putvande    10 年前

    它不起作用,因为 .usersPhoneNumber 是多个元素,因此您需要通过它们循环:

    $(document).ready(function() {
      // loop over your elements
      $(".usersPhoneNumber").each(function() {
        // check if elements length is 11
        if ($(this).text().length === 11) {
          var val = $(this).html();
          $(this).html(val.substring(1, val.length));
          console.log("tes33");
          alert("testing");
        }
      })
    });
    

    Updated Fiddle

        2
  •  1
  •   j08691    10 年前

    短而甜:

    $(".usersPhoneNumber").each(function() {
      if ($(this).text().length === 11) $(this).html($(this).html().substr(1))
    })
    

    $(".usersPhoneNumber").each(function() {
      if ($(this).text().length === 11) $(this).html($(this).html().substr(1))
    })
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <table>
      <tr>
        <td class="usersPhoneNumber">13032659875</td>
      </tr>
      <tr>
        <td class="usersPhoneNumber">13032369875</td>
      </tr>
      <tr>
        <td class="usersPhoneNumber">15456663323</td>
      </tr>
      <tr>
        <td class="usersPhoneNumber">13265333333</td>
      </tr>
      <tr>
        <td class="usersPhoneNumber">13032659898</td>
      </tr>
    </table>
        3
  •  1
  •   Barmar    10 年前

    您需要对元素进行循环。如果你给 .text() 方法,它将自动执行循环——函数的返回值替换元素的文本。

    $(".usersPhoneNumber").text(function(i, oldtext) {
      if (oldtext.length == 11) {
        return oldtext.substr(1);
      } else {
        return oldtext;
      }
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <table>
      <tr>
        <td class="usersPhoneNumber">13032659875</td>
      </tr>
      <tr>
        <td class="usersPhoneNumber">13032369875</td>
      </tr>
      <tr>
        <td class="usersPhoneNumber">15456663323</td>
      </tr>
      <tr>
        <td class="usersPhoneNumber">13265333333</td>
      </tr>
      <tr>
        <td class="usersPhoneNumber">13032659898</td>
      </tr>
    </table>
        4
  •  1
  •   vinay hegde    10 年前
    $(document).ready(function (){
                var xx = $(".usersPhoneNumber");
                //alert(xx.text());
               $(".usersPhoneNumber").each(function(){
    
                  var phno = $(this).text();
                  //alert(phno);
                  if (phno.length === 11) {
                    var val = $(this).html();                   
                    $(this).html(val.substring(1, val.length));              
                }
    
    
               });
     });
    

    我已经更新了你的代码。看看这个。它正在工作。 你的代码的问题是,你没有在每个数字之间循环。变量“theNumber”是一个对象。

        5
  •  0
  •   Shawn    10 年前

    您想使用jquery“each”

     $(document).ready(function (){
                    var xx = $(".usersPhoneNumber");
                    $(xx).each(function(){
                        var val = $(this).html();
                        $(this).html(val.substring(1, val.length));
                        console.log("tes33");
                        alert("testing");
    

    updated JSFiddle

        6
  •  0
  •   marcusshep retro    10 年前

    这是我的解决方案:

    var xx = $(".usersPhoneNumber");
    
    for(var i=0; i<xx.length;i++){
        xx[i].innerHTML = xx[i].innerHTML.substring(
            xx[i].innerHTML.length - (xx[i].innerHTML.length-1))
        console.log(xx[i].innerHTML);
    }