jquery修改每个类的html

时间:2016-08-01 10:16:39

标签: javascript jquery html date

我是jquery的新手,我花了太多时间来解决这个问题。

HTML

<div class="date">12-02-2012</div>
<div class="date">14-02-2012</div>

我需要在变量中保存相应div的值,然后为相应的标记更改它。

var1 = '12-02-2012'
var2 = '14-02-2012'

<div class="date">12- Number(var1.split('-')[1])+1 -2012</div>
<div class="date">14- Number(var2.split('-')[1])+1 -2012</div>

而不是使用var1和var2,我需要它像foreach元素那样具有class =“date”。

4 个答案:

答案 0 :(得分:0)

你可以这样做:

$('div.date').each(function(){
    var date = this.innerHTML.split('-').map(Number); // convert that string into a array of numbers
    date[1] = date[1] + 1; // add +1 in the middle number
    this.innerHTML = date.join('-'); // put it back into the div
});

jsFiddle:https://jsfiddle.net/qfqkt98r/

答案 1 :(得分:0)

您的问题很难理解,但是从伪代码示例中我假设您要将1添加到字符串中的第二个值。在这种情况下,你可以这样做:

$('.date').text(function(i, t) {
    var dateParts = t.split('-');
    dateParts[1] = ("00" + (parseInt(dateParts[1], 10) + 1)).substr(-2);
    return dateParts.join('-');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="date">12-02-2012</div>
<div class="date">14-02-2012</div>

你也可以通过将div元素的文本值解析为日期来实现这一目标,但是由于你需要剖析日期,修改数值然后把它全部放回去,这样做会更长。再度携手。但请注意,如果您的添加超过了年份边界,则需要这样做。

答案 2 :(得分:0)

请查看下面的代码段。

&#13;
&#13;
$(document).ready(function(){
  var NewHTML = '';
  //loop through all the divs
  $(".date").each(function(){
    //get date from div
    var datevalue = $(this).text();
    //Split date
    var dateArr = datevalue.split('-');
    
    //Create new HTML of div as per your need
    //For month part first it converted to int then added 1 and then converted to string and apended 0 before the month.
    if(parseInt(dateArr[1])<9){
      var month = (0+(parseInt(dateArr[1])+1).toString());
    }else{
      var month = ((parseInt(dateArr[1])+1).toString());
    }
    NewHTML += '<div class="date">'+dateArr[0]+'-'+month+'-'+dateArr[2]+'</div>';
  });
  $("#outcome").html(NewHTML);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="date">12-10-2012</div>
<div class="date">14-02-2012</div>

Result:<br/>

<div id="outcome"></div>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

您不需要变量。如果您向.text().html()提供函数,它会收到旧内容并返回替换内容。

$("#change").click(function() {
  $(".date").text(function(i, oldtext) {
    return '12-' + (Number(oldtext.split('-')[1]) + 1) + '-2012';
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="date">12-02-2012</div>
<div class="date">14-02-2012</div>
<button id="change">Click</button>