2

为什么$('*[lang|="de"][lang|="sv"]').hide();不使用 lang="de" 和 lang="se" 属性选择然后隐藏我所有的 h1s、h2s 和 ps?例如与

<p lang="de">Lorem Ipsum ist ein einfacher Blindtext für die Druckindustrie.</p>
<p lang="en">Lorem Ipsum is simply dummy text of the printing industry.</p>
<p lang="sv">Lorem Ipsum är en utfyllnadstext från tryckindustrin.</p>

我正在使用一个非常简单的三重语言选择器(默认情况下可见英语),例如

<script type="text/javascript">
$('*[lang|="de"][lang|="sv"]').hide();

$("#lang_de").click(function (event) {
event.preventDefault();
$('*[lang|="en"][lang|="sv"]').hide();
$('*[lang|="de"]').show();
});

$("#lang_sv").click(function (event) {
event.preventDefault();
$('*[lang|="de"][lang|="en"]').hide();
$('*[lang|="sv"]').show();
});
</script>

属性选择器不能这样组合吗?

编辑:这对我来说现在很好

(function () {
$('*[lang|="de"], *[lang|="sv"]').hide();

$("#lang_de").click(function (event) {
    event.preventDefault();
    $('*[lang|="en"], *[lang|="sv"]').hide();
    $('*[lang|="de"]').show();
});

$("#lang_sv").click(function (event) {
    event.preventDefault();
    $('*[lang|="de"], *[lang|="en"]').hide();
    $('*[lang|="sv"]').show();
});
})();
4

1 回答 1

2

查看jsfiddle

在 jQuery 中有多个选择器时,您需要添加逗号。它应该看起来像

$('*[lang|="de"], *[lang|="sv"]').hide();

我还修复了您的点击事件。它也不起作用。它也需要通过*[lang|="de"]调用来选择。您可以在 jsfiddle 中看到一个工作示例。

这是多选择器的 jQuery 文档

不完全是您对语言切换器的实现。但是,如果您正在寻找为整个网站做这件事,而不是用每种语言多次写出您的网站,请查看多语言网站的这篇文章

** 更新 **

看到这个jsfiddle不使用*作为选择器的一部分

于 2012-07-21T17:33:28.347 回答