0

我有一个:

$('#product_category  > option:selected').each(function()

并将其附加到一些盒子

.append(<div>'+$(this).text()+'</div>);

但我想将文本替换为仅显示 9 个字符。如果长度大于 9,则写入前 9 和 +"..."

我试过了:

    $('#product_category  > option:selected').each(function() {
    var text = $(this).text(); 
    if(text.val().length > 8)
    {
        text = text.substr(0,9)+"...";
    }

    $('#confirm-category').append('<div class="alert alert-success">'+text+'</div>');    
});

但它不工作:/

我会很高兴得到任何帮助:)

4

2 回答 2

4

改变你的 if 条件

if(text.val().length > 8)

if(text.length > 8)

你不需要val()那里,因为你已经有了它的文本text()

var text = $(this).text();  //<---here
于 2013-09-16T09:14:45.340 回答
0

text 变量不是 jquery 对象,因此您可以在没有 val() 的情况下编写它;

$('#product_category  > option:selected').each(function() {
    var text = $(this).text(); 
    if(text.length > 8)
    {
        text = text.substr(0,9)+"...";
    }

    $('#confirm-category').append('<div class="alert alert-success">'+text+'</div>');    
});
于 2013-09-16T09:17:15.850 回答