我的网站上有不同的语言。每种语言都有相同的产品,每个产品的类名不同。所以我们说我们有这个:
<div id="post-2036" class="willy peter pieter don donkey">
<div class="product1 productiana prodonnie">Product 1</div>
<div class="product2 prengdenga prodnie">Product 2</div>
<div class="product3 oestnak ifweuhiw">Product 3</div>
<div class="product4 iuerghreiuh ruehreiuh ">Product 4</div>
<div class="product5 iuerghreiuh ruehreiuh ">Product 5</div>
</div>
每种语言都是一样的。正如您所看到的,每个类都有多个类名,我只需要第一个类名来获取当前活动语言的首字母。
我使用
从网址中获取了语言首字母var url = window.location.pathname.split('/')[1];
现在我只需要将'url'的结果添加到product1,product2,product3类名等中。
所以最终它看起来像这样(例如当用户在意大利语页面上时):
<div id="post-2036" class="willy peter pieter don donkey">
<div class="product1_it productiana prodonnie">Product 1</div>
<div class="product2_it prengdenga prodnie">Product 2</div>
<div class="product3_it oestnak ifweuhiw">Product 3</div>
<div class="product4_it iuerghreiuh ruehreiuh ">Product 4</div>
<div class="product5_it iuerghreiuh ruehreiuh ">Product 5</div>
</div>
我希望我能够清楚地说明我的问题,如果不是,请让我知道,非常感谢!
答案 0 :(得分:3)
遵循以下方法: -
1.先上课。
2.添加url值。
3.将此课程添加回div
工作片段: -
$(document).ready(function(){
var url = 'it';
$('div#post-2036').find('div').each(function(){
var class_array = $(this).attr('class').split(' ');// split classes to make it array
class_array[0] = class_array[0]+'_'+url; // add lang value to first class
$(this).removeClass().addClass(class_array.join(' ')); // now add the new class to div
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="post-2036" class="willy peter pieter don donkey">
<div class="product1 productiana prodonnie">Product 1</div>
<div class="product2 prengdenga prodnie">Product 2</div>
<div class="product3 oestnak ifweuhiw">Product 3</div>
<div class="product4 iuerghreiuh ruehreiuh ">Product 4</div>
<div class="product5 iuerghreiuh ruehreiuh ">Product 5</div>
</div>
答案 1 :(得分:1)
绝对最简单,最常见的解决方案是从网址获取您获得的语言变量,并将其作为类添加到string stringToDecrypt = HttpContext.Current.Request.QueryString.ToString()
元素上。
然后你可以使用那个类,结合例如html
并且这样做:
脚本
product1
HTML
(function (d,url) {
d.classList.add(url);
})(document.documentElement,window.location.pathname.split('/')[1]);
CSS
<html class='it'>
或使用属性
脚本
.it .product1 {
}
HTML
(function (d,url) {
d.setAttribute('data-lang',url);
})(document.documentElement,window.location.pathname.split('/')[1]);
CSS
<html data-lang='it'>
答案 2 :(得分:0)
你不能那样做。
让一种语言成为一种识别类的更好方法。
<div id="post-2036" class="willy peter pieter don donkey">
<div class="product1 english productiana prodonnie">Product 1</div>
<div class="product2 english prengdenga prodnie">Product 2</div>
<div class="product3 english oestnak ifweuhiw">Product 3</div>
<div class="product4 english iuerghreiuh ruehreiuh ">Product 4</div>
<div class="product5 english iuerghreiuh ruehreiuh ">Product 5</div>
</div>
当您切换到其他语言时,请删除英语并添加新的法语。
更好的方法是将英语语言课程放在容器中的一个地方。例如。
除了您的产品可以在一个页面上使用更多不同的语言。
答案 3 :(得分:0)
您可以使用jQuery的.attr()
函数手动更改元素的类标记。
此外,您可以使用.find()
函数查找带有正则表达式的元素。
答案 4 :(得分:0)
你可以找到第一类向课堂添加内容(在你的情况下来自url)删除旧类并添加新类。
var url = 'it';
$('#post-2036').find('div').each(function(index, element) {
var cls = $(this).attr('class');
var st = cls.split(' ');
var firstClass = st[0];
var newClass=st[0]=firstClass+'_'+url
console.log(newClass);
$(this).removeClass(firstClass).addClass(newClass);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="post-2036" class="willy peter pieter don donkey">
<div class="product1 productiana prodonnie">Product 1</div>
<div class="product2 prengdenga prodnie">Product 2</div>
<div class="product3 oestnak ifweuhiw">Product 3</div>
<div class="product4 iuerghreiuh ruehreiuh ">Product 4</div>
<div class="product5 iuerghreiuh ruehreiuh ">Product 5</div>
</div>