【问题标题】:Split string in half across 2 divs [closed]在 2 个 div 中将字符串分成两半 [关闭]
【发布时间】:2018-02-12 14:03:18
【问题描述】:

希望编写一个将字符串分成两半的代码。例如,如果输入的名称是“Trishy”,则 6 个字母,前 3 个字母进入<ul class="hardcover_front"> 的第二个li,后三个字母进入<ul class="hardcover_back"> 的第一个li

请注意,我需要这个来申请多个不同字符长度的名称。

<div id="book1" class="book">
        <ul class="hardcover_front">
            <li></li>
            <li>Tri</li>
        </ul>
        <ul class="hardcover_back">
            <li>shy</li>
            <li></li>
        </ul>
        <ul class="book_spine">
        </ul>
</div>

【问题讨论】:

  • 使用substring
  • @adiga 你如何将字符串分成两半?
  • @evilgenious448 你浏览过我发送的链接吗?这是直截了当的。 `substring(0, string_length / 2)。然后是子字符串(字符串长度 / 2,字符串长度)。添加一些逻辑来处理奇数字符串长度。否决票是您不愿意尝试的结果。

标签: javascript jquery html


【解决方案1】:

这里有一些步骤可以帮助您前进。使用 Google 了解您不了解的部分。一旦你有一个半工作的解决方案,只需用你的 JS 更新问题,看看会发生什么......

  • 获取字符串的长度;
  • 确定中间值,考虑到 7 个字符的中间值是 3.5,因此您必须使用数学对结果进行四舍五入;
  • 使用substring 获取您需要的字符;
  • 使用document.querySelector 或类似方法从DOM 中检索您需要的元素
  • 设置您通过textContentinnerHTML 检索到的元素的文本。

【讨论】:

    【解决方案2】:
    var s = "Trishy";
    
    var half = Math.round(s.length / 2);
    var first = s.substr(0, half);
    var last = s.substr(half + 1, s.length);
    $('#book1 ul.hardcover_front').find('li:nth-child(2)').html(first);
    $('#book1 ul.hardcover_back').find('li:nth-child(1)').html(last);
    

    这应该可以解决问题。

    【讨论】:

    • 这是正确的,除了 (half + 1, 应该只是 (half,
    【解决方案3】:

    你可以像这样得到字符串的两半,并在任何你想要的地方使用它们

    <!DOCTYPE html>
    <html>
    <body>
    
    <p>Click the button to extract characters from the string.</p>
    
    <button onclick="myFunction()">Try it</button>
    
    <p id="demo"></p>
    
    <script>
    function myFunction() {
        var str = "Helloworld!";
        var length = str.length;
       
        if(length%2 == 0){
        res = str.substring(0, length/2);
       	res1 = str.substring(length/2, length);
        
        }
        else{
        res = str.substring(0, (length/2) + 1);
       	res1 = str.substring((length/2) + 1, length);
        
        }
        alert("First Half- "+res+"\n"+"Second Half- "+res1);
        console.log("First Half- "+res+"\n"+"Second Half- "+res1);
    }
    </script>
    
    </body>
    </html>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多