我有一个:
$('#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>');
});
但它不起作用:/
我会很高兴得到任何帮助:)
答案 0 :(得分:4)
更改你的if条件
if(text.val().length > 8)
到
if(text.length > 8)
您不需要val()
,因为您已经有text()
文字。
var text = $(this).text(); //<---here
答案 1 :(得分: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>');
});