-2

我在下面有一个 html。如何获取第二个标签的文本,即"Frame Size"

<div class="productOptionViewSelect">
    <div class="selector fixedWidth" id="uniform-08876c63593c0928fefc45101870c7b0"><span style="-webkit-user-select: none;">Frame Size</span><select class="validation" id="08876c63593c0928fefc45101870c7b0" name="attribute[1318]">
        <option value="">-- Please Select --</option>

                    <option value="2527">Frame Size</option>
                    <option value="206">10x15 (4x6 in)</option>
            </select></div>
</div>


<div class="productOptionViewSelect">
        <div class="selector fixedWidth" id="uniform-08876c63593c0928fefc45101870c7b0"><span style="-webkit-user-select: none;">Frame Size</span><select class="validation" id="08876c63593c0928fefc45101870c7b0" name="attribute[1318]">
            <option value="">-- Please Select --</option>

                        <option value="252">Photo Size</option>
                        <option value="206">10x20 (4x6 in)</option>
                </select></div>
    </div>

我可以通过

$('.productOptionViewSelect').find('select').val();

但这不会满足我的要求。可以选择任何选项,所以我不能在 jQuery 之上使用。

编辑

如果我有两次具有不同选项集的相同块,而不是如何获得每个块的第二个选项?在这种情况下,我想要Frame SizePhoto Size但在每个事件调用中它只返回Frame Size 。任何帮助,将不胜感激。

4

5 回答 5

1

用这个

$('.productOptionViewSelect').find('select option:selected').text()

它会给你里面的文字<option>

于 2015-04-22T08:43:11.553 回答
1

你不能像这样使用选择器:

$('.productOptionViewSelect option:eq(1)')

因为在这个结果集中只有一个选项会有索引1- 第二个 div 中的第二个选项.productOptionViewSelect的索引将获得等于第一个 div plus 中最后一个选项的索引的索引2

因此,您应该遍历这两组选项并使用.text()

$('.productOptionViewSelect').each(function(){
    console.log($(this).find('option:eq(1)').text());
});

输出:

Frame Size
Photo Size
于 2015-04-22T08:43:29.820 回答
0

如果要获取选定选项的文本,则需要获取选定选项的 jquery 对象,然后使用.text()or.html()获取其中的内容:

$('.productOptionViewSelect option:selected').text();
于 2015-04-22T08:41:57.773 回答
0

尝试

$('.productOptionViewSelect select').find('option:selected').text();
于 2015-04-22T08:43:13.230 回答
0
$("select.validation option:eq(1)").text();
于 2015-04-22T08:51:31.820 回答