如何从选择而不是选定的选项文本访问文本,但选择窗格中显示的内容是什么?

时间:2016-01-30 18:02:56

标签: javascript jquery html translation

我正在编写一个通用的jQuery翻译插件,并且在选择区域中出现的文本遇到了问题,该文本无法翻译。例如,这是英文选择:

<select>
    <option value=" = 0">Choose an option</option>
    <option value=" = 1">one</option>
    <option value=" = 2">two</option>
    <option value=" = 3">three</option>
</select>

渲染时,选择显示&#34;选择和选项&#34;在一个下拉框上方。

翻译后:

<select>
    <option value=" = 0">Choisisez une option</option>
    <option value=" = 1">un</option>
    <option value=" = 2">dues</option>
    <option value=" = 3">trois</option>
</select>

但是在渲染时,选择的文字会显示&#34;选择和选项&#34;即使自动默认选项已翻译,也会以英文显示。

我的选择器为$("select option"),我也尝试了$("select>option)

我如何引用它,以便默认文本以法语显示。我更喜欢jQuery选择器字符串的答案,即没有任何.find,.parent等。

更新 请允许我强调,它与插件代码无关。这纯粹是一个jQuery选择器问题。我尝试的最后一件事是&#34;选择选项:nth-​​child(1):parent&#34;这没有解决问题。

这是link to the site,它将说明我的意思。只需从页面右上角的下拉框中选择一种语言即可。

1 个答案:

答案 0 :(得分:0)

$("select").children(":selected").text();

将获取所选选项的文本。

获取每个选项的文本:

$("select").children("option").each(function() {
    $(this).text();//Do something with the text
});

获取第三个选项的文本:

$("select").children("option:nth-child(2)");

.children()可以与$(“select”)组合,但我写了children(),因为这样可以用变量或$(this)替换select。