我是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”。
答案 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
});
答案 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)
请查看下面的代码段。
$(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;
答案 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>