【问题标题】:Define max visible length of select/option element定义选择/选项元素的最大可见长度
【发布时间】:2016-02-26 19:04:50
【问题描述】:

我想创建一个<select> 字段。默认情况下,该字段的长度由最长的<option> 定义。当我需要整个选择字段 100% 的父 div 时,是否可以定义可见选择选项的最大长度?

让我用代码告诉你:

<div class = "my-container">
  <select name="myselect" id="myselect">
    <option>abc</option>
    <option>xyz1</option>
    <option>really really long long long long long string</option>
  </select>
</div>

风格:

.my-container{
  width:200px;
}
#myselect{
  width: 100%;
}

现在我想让我的选择字段 100% 宽度,但是!我想在这个选择中显示,让我们说只有 20 个单词(或一些 px 值)的选项值,然后是“...”示例:

Verylong
Verylonglonglong... (original value: Verylonglonglong1234567789)

我尝试将溢出属性添加到#myselect,但它对我不起作用。

【问题讨论】:

  • @DarrenSweeney 这不是 Dup,因为那里没有公认或格式正确的答案
  • 这可以通过文本溢出来完成:省略号;。主流浏览器支持:caniuse.com/#search=text-overflow
  • 如果您想显示选项的宽度并选择相同的选项,请使用此 css 可以帮助您#myselect option{ width: 100%;}
  • 这些选项都不适合我。

标签: html css html-select maxlength


【解决方案1】:

您的问题的 JQuery 解决方案:

var maxLength = 15;
$('#myselect > option').text(function(i, text) {
    if (text.length > maxLength) {
        return text.substr(0, maxLength) + '...';  
    }
});
.my-container{
  width:200px;
}
#myselect{
  width: 100%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class = "my-container">
  <select name="myselect" id="myselect">
    <option>abc</option>
    <option>xyz1</option>
    <option>really really long long long long long string</option>
  </select>
</div>

【讨论】:

  • $('#myselect &gt; option') 部分是什么意思?
  • 意思是:选择#myselect的直接选项后代
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多