Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   редактирование элемента по id (https://javascript.ru/forum/dom-window/4305-redaktirovanie-ehlementa-po-id.html)

Riim 10.07.2009 11:48

Snowcore, спасибо за ссылку.

Цитата:

Tip: Do not underline text! A user can confuse it with a hyperlink!
В общем, не буду я вообще такой bb-тег делать. А то совсем на ссылку похоже будет, они у меня никак не подсвечиваются, только подчеркиваются.

Snowcore 10.07.2009 11:52

Цитата:

Сообщение от Riim (Сообщение 24101)
Snowcore,
спрашивая "что курили" я не хотел обидеть или что-либо в этом духе. Нужно воспринимать исключительно с положительной стороны.

no problem :)

sat-lin 10.07.2009 14:31

Господа вы что то совсем от темы ушли!
Частично придумал как енто сделать, но что то не фурычит!
Если не сложно подскажите где лопухнулся, я в JS совсем новичек:(
<table id="tableId" border="1">
<tr>
<td>10.02.2009</td>
<td> Правельные год</td>
</tr>
<tr>
<td>10.03.2008</td>
<td>Не правильный год</td>
</tr>
<tr>
<td>20.12.2005</td>
<td>Совсем не правильный год</td>
</tr>
</table>
<input type="button" value="кнопко" onclick="del();">
<script language="javascript">
function del(){
var date = new Date();
month = date.getMonth() + 1; // правильный месяц
var datenow = date.getDate() + "." + month + "." + date.getYear(); // текущая дата в нужном формате

var table = document.getElementById("tableId");
var trs = table.getElementsByTagName("tr"); // все ячейк
var i = trs.length;

while (i) {
var td = table.trs[--i].getElementsByTagName('td');

window.alert(trs.innerHTML);
window.alert(td.innerHTML);

if (Date.parse(td.innerHTML) < 10.02.2009) tr.parentNode.removeChild(tr);

}
i++;
}

Photon 11.07.2009 12:34

Для начала: нафига последнее i++?
Затем: А кто сказал, что Date.parse() нормально работает со строкой типа '10.02.2009'?
И третье: не совсем правильный подход к написанию скрипта..
function del(){
    var date = new Date();
    var Months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'July', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
    var table = document.getElementById("tableId");
    var trs = table.getElementsByTagName("tr"); // все строки
    var i = trs.length;
    while (i) {
        var td = trs[--i].getElementsByTagName('td');
        var cnt = td.length;
        for (var j = 0; j < cnt; j++) {
        	var data = td[j].innerHTML;
        	var data_arr = data.split('.');
        	if (data_arr.length > 0) {
        		m = Months[data_arr[1] - 1];
        		d = data_arr[0];
        		y = data_arr[2];
        		alert('date = ' + d + ' ' + m + ' ' + y + ' parse = ' + Date.parse(d + ' ' + m + ' ' + y));
        		alert(date.getTime());
                if (Date.parse(d + ' ' + m + ' ' + y) < date.getTime()) {
                    table.deleteRow(i);
                    break;
                }
            } 
        }
    }
}


Вот как-то так. Это работает и все удаляет как надо.. Все строки, в которых дата меньше сегодняшней.. Я думаю, переделать под нужную дату труда уже не составит

Riim 11.07.2009 14:55

Цитата:

Сообщение от Photon
А кто сказал, что Date.parse() нормально работает со строкой типа '10.02.2009'?

А кто пояснял, какая там строка?

Цитата:

Сообщение от Photon
for (var j = 0; j < cnt; j++) {

Кто вообще сказал, что искать нужно во всех столбцах ?

sat-lin 13.07.2009 14:34

!!!!ВСЕМ ОГРОМАДНОЕ СПАСИБО!!!!

Photon 13.07.2009 15:14

Riim, человек привел конкретный пример. По этому примеру я задавал вопросы..
А поиск по всем столбцам исключительно с точки зрения - а хз, где там дата..


Часовой пояс GMT +3, время: 02:47.