javascript - 根据选定的 UL LI 项目生成数组 - 如何删除尾随空格?

标签 javascript jquery arrays

我似乎无法弄清楚为什么我的数组会有尾随空格。基于所选 li 项目构建数组后的最终结果目前如下所示:1234 ,0123 我怎样才能得到输出:1234,0123

这是有问题的代码:

var arr_numbers = [];
window.onload = function() {

    $(document).bind('click', function(e) {
        var $clicked = $(e.target);
        if (!$clicked.hasClass("select")) {
            $(this).find('ul li').hide();
        }
    });

    $(".select").click(function () {
        $(this).find('ul li').toggle();
    });

    $(".select ul li").click(function(e) {
        if (e.ctrlKey) {
            e.stopPropagation();
            if ($(this).hasClass('selected')) {                        
                $(this).removeClass('selected');
            }
            else {
                $(this).addClass('selected');
            }

            var c = $(this).parent().find("li.selected").length;

            $(this).closest("div").contents().first()
              .replaceWith((c > 1) ? "(" + c + ")" : $(this).text());
        }
        else {
            $(this).closest("div").contents().first()
              .replaceWith($(this).text());

            var id = $(this).closest('[id]').attr('id');
            $(this).closest('.select').find("ul li").removeClass('selected');
            $(this).addClass('selected');
        }
    }); 
}


function get_data_array(element) {
    if (element == 'numbers') {
        var data_array_numbers = [];
        var list = $("#numbers ul").find("li.selected")
        $.each(list, function() {
            //alert($(this).data('val'));
            //alert($(this).text());                
            data_array_numbers.push($(this).text());
        });
        alert(data_array_numbers);
    }
}

这是 HTML:

Numbers
<div class="select" id="numbers">&nbsp;
    <ul>
        <li>&nbsp;</li>
        <li data-val="1234">1234</li>
        <li data-val="5678">5678</li>
        <li data-val="0123">0123</li>
    </ul>
</div>
<br><br>
Letters
<div class="select" id="letters">&nbsp;
    <ul>
        <li>&nbsp;</li>
        <li>abcd</li>
        <li>efgh</li>
        <li>ijkl</li>
    </ul>
</div>
<br><br>
Fruits
<div class="select" id="fruits">&nbsp;
    <ul>
        <li>&nbsp;</li>
        <li>apples</li>
        <li>bananas</li>
        <li>oranges</li>
    </ul>
</div>

<br><br>
<input type="button" value="test" onclick="get_data_array('numbers')">

最佳答案

使用jQuery.trim() ,删除字符串开头和结尾的空格

data_array_numbers.push(jQuery.trim($(this).text()))

关于javascript - 根据选定的 UL LI 项目生成数组 - 如何删除尾随空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34727506/

相关文章:

javascript - 在多列中拆分链接

c - 在不同范围内设置和使用变量在 C 中不起作用

php - while 循环 foreach 返回在下一个 for 循环中重复的值

javascript - id 包含 Jquery 中的特定字符串名称

javascript - catch 语句不捕获抛出的错误

jquery - 任何不使用 CSS 浏览器前缀的插件或插件

php - 将数据从PHP发送到jQuery

arrays - 将一维字符串数组转换为json文件

从 .NET 2.0 升级到 .NET 3.5 时 JavaScript 速度很慢

javascript - keyup 只能工作一次