1

我在这个小提琴中也有下面的代码。

HTML

    <span class="myName">John Smith</span>
    <span class="myName">John Smith</span>
    <span class="myName">John Smith</span>
    <span class="myName">John Smith</span>
    <span class="myName">John Smith</span>
    <span class="myName">John Smith</span>

JavaScript

    $('.myName').each(function(){
        var text = $(this).html().split(' '),
            len = text.length,
            test = $(this).val().length,
            result = []; 
        console.log('outside: ' + test);
        for( var i = 0; i < len; i++ ) {
            result[i] = '<span class="name-'+[i]+'" >' + text[i] + '</span>';
            console.log('inside: ' + test);
        }
        $(this).html(result.join(' '));
        console.log('after: ' + test);
    }); 

它为 myName div 中的每个单词添加一个跨度。我想计算每个 div 中的字符,以便如果它是一个长名称,我可以将名字缩减为 J Smith。

但是,如果您查看控制台日志,我尝试计算三个不同位置的长度,它总是返回为 0?我究竟做错了什么?

4

1 回答 1

3

zerkms 是对的。你想改变这个:

test = $(this).val().length,

对此:

test = $(this).text().length,
于 2013-07-10T23:24:51.660 回答