我可以在不删除课程的情况下编辑课程吗?

时间:2018-03-16 10:46:44

标签: javascript jquery

我的网站上有不同的语言。每种语言都有相同的产品,每个产品的类名不同。所以我们说我们有这个:

<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>

我希望我能够清楚地说明我的问题,如果不是,请让我知道,非常感谢!

5 个答案:

答案 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>