如何从<select>中的<option>获取文本,而没有通过selectize </select> </option>设置显示

时间:2014-08-27 07:31:15

标签: jquery html css selectize.js

我正在使用seletize 0.11.0 for bootstrap2。我想从<option>获取具有特定价值的文字。

我试过了:

$("#id_sel option[value='1']").text();

我一无所获。

html元素<select>的属性显示为无。

那么,怎么做?谢谢你的考虑。

修改

样品

<body>
    <select id="id_sel" multiple='multiple'>
        <option selected='selected' value='1'>first</option>
        <option value='2'>second</option>
        <option selected='selected' value='3'>third</option>
    </select>
</body>

JS

$("#id_sel").selectize();
alert($("#id_sel option[value='1']").text());

现在我知道

在选项标签之间选择remove text并将select显示为无。这是有线的。

所以在运行时选择看起来像:

<select id="id_sel" multiple="multiple" class="selectized" style="display: none;">
    <option selected='selected' value='1'></option>
    <option value='2'></option>
    <option selected='selected' value='3'></option>
</select>

好吧,我还是不知道如何获取文字。

4 个答案:

答案 0 :(得分:0)

您可以使用

$("#id_sel option").each(function()
{
    // here you can use $(this).text()
});

答案 1 :(得分:0)

<script>  

    jQuery(document).ready(function()
    {
        $("#id_sel option").each(function()
        {
            if(!$(this).is(':visible'))
            {
                alert($(this).val());
            }
        });                        
    });

</script>



<select id="id_sel">
    <option>select</option>
    <option style="display: none;">1</option>
    <option>2</option>
</select>

通过此代码,您可以获得隐藏选项字段的值

答案 2 :(得分:0)

嗯,应该有一些api来做到这一点。如果没有,它是经过的。我试过了getOption() and getItem()。这不行。 Selectize不会为我使用的版本的选项标签添加文本。它使<select>为无,并创建一组div来覆盖<select>的位置。在我的版本中,它看起来像:

<div class="selectize-control multi">
    <div class="selectize-input items full has-options has-items">
        <div data-value="1" class="item">first</div>
        <div data-value="2" class="item">second</div>
        <input ....
        ....
    </div>
</div>

现在,我使用jquery多重选择器来获取文本。

$(".selectize-control .selectize-input div").each(function() {
    if (1 == $(this).data("value")) {
        alert($(this).text());
    }
});

或由id

标识
$("#id_sel").siblings(".selectize-control").find(".selectize-input div").each(function() {
    if (1 == $(this).data("value")) {
        alert($(this).text());
    }
});

希望这对其他人有帮助。最好的答案应该是使用api来做到这一点。

答案 3 :(得分:0)

以下是您提到的代码:

$("#id_sel option").val("1").text();