我希望沿着这些方向做点什么,但一直陷入困境。
基本上我有一个for循环
$(document).ready(function() {
var foo = function() {
for (var i = 0; i < 10; i++) {
$('#event_').attr('id', 'event_' + i);
$('#unformatted_').attr('id', 'unformatted_' + i);
$('#formatted_').attr('id', 'formatted_', +i);
}
};
/* formatting date and time (from sql YYYY-MM-DD HH:MM:SS.0000 - need DD-MM-YYYY HH:MM:SS */
/* this is where i want to do something like #unformatted + i to cycle through each span with #unformatted_ (1,2,3,4 etc), grab the html (the date and time), format them, and display them in #formatted_ (1,2,3,4 etc) but with the corresponding one of course*/
var startdate = $('#unformatted_').html();
var subyear = (startdate).substr(0, 4);
var submonth = (startdate).substr(5, 2);
var subday = (startdate).substr(8, 2);
var starttime = (startdate).substr(11, 8);
var subfull = (subday + "-" + submonth + "-" + subyear);
$('#formatted_').html(subfull + " " + starttime);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="event_">
<th>Table Header</th>
<tr>
<td>
<span id="unformatted_">" . $row["date"]. " " . $row["time"]. "</span>
<span id="formatted_"></span>
</td>
</tr>
</table>
<table id="event_">
<th>Table Header</th>
<tr>
<td>
<span id="unformatted_">" . $row["date"]. " " . $row["time"]. "</span>
<span id="formatted_"></span>
</td>
</tr>
</table>
<table id="event_">
<th>Table Header</th>
<tr>
<td>
<span id="unformatted_">" . $row["date"]. " " . $row["time"]. "</span>
<span id="formatted_"></span>
</td>
</tr>
</table>
&#13;
每个#event_,#unittted_和#formatted_都会得到一个放在最后的数字。因此表1中的所有三个ID都具有_1,表2中有_2。
然后我需要在#unformatted_中获取文本输出(来自SQL表的日期,用php回显,思考日历或议程),一旦由变量抓取substr格式化,它需要显示在#formatted_中。目前我只能获得第一个表(#event_1)来显示#formamed_1文本,其中#formast_2的#eforma_2部分为空(依此类推)。
我已经将#formamed_1显示在#forman_2和#formatted_3中,但我似乎无法获得
#event_1 -> #unformatted_1 -> #formatted_1
#even_2 -> #unformatted_2 -> #formatted_2
..so on and so forth.
如果您运行该代码段,您会看到我在说什么。
我非常业余,所以任何帮助都将非常感谢! PS。在阅读有关解决我的问题的方法时,我已经看到很多关于JSON&amp; amp; AJAX,我应该使用这些吗?
我所建立的网站基本上是一个活动网站。所以说它是一个喜剧俱乐部。用户访问该站点,查看自定义构建的日历(每个节目的sql数据库,通过php回显行),每个月都是它自己的.php(即jan.php)。我需要添加addthisevent.com将此事件按钮添加到每个日历条目,以便用户可以轻松添加到Google cal或ical。如果你知道一个更简单的方法,我全都耳朵!或者如果这是一个简单的方法来创建一个可以被所有google cal,ical等读取的XML文件,这些文件可以通过用户点击链接启动,我也是所有的人。
任何帮助将不胜感激。我就像在海洋中间没有翅膀的鸟一样陷入困境。
答案 0 :(得分:1)
将您的所有范围都设为class="unformatted"
和class="formatted"
,而不是ID。循环遍历获取每个元素的html(日期)的所有unformatted
元素,重新格式化它,然后使用jQuery的eq()
将修改后的文本设置为匹配的formatted
元素
// give all your spans, classes `class="unformatted"` and `class="formatted"`
// loop through all of the `unformatted` elements
$('.unformatted').each(function(index, element){
// use a regular expression to get an array of the different date parts
// then rearrange them
if($(element).html().match(/\d{4}-\d\d-\d\d\s\d\d:\d\d:\d\d/)){
var dateParts= $(element).html().match(/(\d{4})-(\d\d)-(\d\d)\s(\d\d:\d\d:\d\d)/);
// dateParts will now be an array with 4 items --> [YYYY, MM, DD, HH:MM:SS]
// use jquery's `eq()` to set the modified text
// to the matching `formatted` element
$('.formatted:eq('+index+')').html( dateParts[3]+'-'+
dateParts[2]+'-'+
dateParts[1]+' '+
dateParts[4] );
}
});
.formatted{
margin-left:20px;
color:green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table >
<th>Table Header</th>
<tr>
<td>
<span class="unformatted">1983-12-22 06:22:25.0000</span>
<span class="formatted"></span>
</td>
</tr>
</table>
<table >
<th>Table Header</th>
<tr>
<td>
<span class="unformatted">1943-06-15 12:22:14.0000</span>
<span class="formatted"></span>
</td>
</tr>
</table>
<table >
<th>Table Header</th>
<tr>
<td>
<span class="unformatted">1999-12-04 02:22:27.0000</span>
<span class="formatted"></span>
</td>
</tr>
</table>