Форум Studio AD » Сайтостроение » Общий форум по Javascript » JavaScript & jQuery (Вопросы и ответы.)
JavaScript & jQuery
UnderShot
Дата: Понедельник, 23.11.2009, 20:12 | Сообщение # 1
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Чтобы не создавать отдельные темы с проблемой в JavaScript, решил создать тему с вопросами по jS и jQ. Задаем вопросы…

Ссылки для обучения JS:
1. Центральный Javascript-ресурс
2. Учебники JavaScript
3. Уроки JavaScript
4. Справочник JavaScript
5. JavaScript tutorials
6. Плагины для jQuery
7. Учим JavaScript
8. Интересные решения на JS
Конечно, если я какие-нибудь ссылки пропустил, оповестите меня, и я добавлю эти ссылки.

UPD Стандарт экма на русском: http://javascript.ru/ecma


Очень важная тема!
Filmzona — онлайн фильмы.
  
BeSinLi
Дата: Воскресенье, 21.02.2010, 14:42 | Сообщение # 101
спикер
Группа: Проверенные
Пользователь №: 216
Сообщений: 500
Получено оценок: 112
Quote (UnderShot)
Slimmi, знак > — дает приоритет.

http://www.w3.org/TR....inators

Ага.


——————————--Tempora mutantur, et nos mutamur in illis
———————————————Si felix esse vis, este!

———————————————————————————————————————————————————————старая аватарка

  
UnderShot
Дата: Понедельник, 22.02.2010, 14:56 | Сообщение # 102
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Infamous, Aleko, спасибо.
Вопрос: Как без использования jQ написать анимацию? Напишите маленький пример пожалуйста.


Очень важная тема!
Filmzona — онлайн фильмы.
  
Aleko
Дата: Понедельник, 22.02.2010, 20:04 | Сообщение # 103
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
UnderShot,...
Code
<div style='width:100px;height:100px;background:red;' onclick='var ___=this,_=0,__=setInterval(function(){if(_<=200){___.style.width=___.offsetWidth+1+"px";_++}},24)'></div>



Бесплатные обои.
  
UnderShot
Дата: Понедельник, 22.02.2010, 20:27 | Сообщение # 104
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Code
if (nullz <= 200)

<= — что значит?


Очень важная тема!
Filmzona — онлайн фильмы.
  
Infamous
Дата: Понедельник, 22.02.2010, 20:37 | Сообщение # 105
говорун
Группа: Проверенные
Пользователь №: 316
Сообщений: 158
Получено оценок: 21
Quote (UnderShot)
<= — что значит?

Меньше или равно.

  
CSC
Дата: Среда, 24.02.2010, 05:16 | Сообщение # 106
молчун
Группа: Пользователи
Пользователь №: 1446
Сообщений: 8
Получено оценок: 1
Всем привет, есть такой вопрос, как сделать обновление страницы, после добавления сообщения-комментария,(ну как на форуме, только в другом модуле)
кто знает как это сделать, можете написать, очень сильно нужно
  
DSC
Дата: Среда, 24.02.2010, 14:29 | Сообщение # 107
спикер
Группа: Проверенные
Пользователь №: 127
Сообщений: 516
Получено оценок: 41
CSC, добавь такой онклик на нужную тебе кнопку:
Code
window.location.reload();


aka Latro
  
CSC
Дата: Среда, 24.02.2010, 15:34 | Сообщение # 108
молчун
Группа: Пользователи
Пользователь №: 1446
Сообщений: 8
Получено оценок: 1
DSC, почему-то вообще не добавляется сообщение,
вот на что поменял
Code
<a href="javascript:window.location.reload()"><input class="commSbmFl" type="submit" id="sbm" value="- Добавить комментарий -" />
  
CSC
Дата: Среда, 24.02.2010, 16:12 | Сообщение # 109
молчун
Группа: Пользователи
Пользователь №: 1446
Сообщений: 8
Получено оценок: 1
Да, еще вопрос - можно ли, сделать обновления участка страницы кнопкой, допустим есть
Code
$MESSAGE$
и чтобы не обновлять всю страницу,
обновились бы только сообщения...


Сообщение отредактировал CSC - Среда, 24.02.2010, 16:12
  
Infamous
Дата: Среда, 24.02.2010, 16:21 | Сообщение # 110
говорун
Группа: Проверенные
Пользователь №: 316
Сообщений: 158
Получено оценок: 21
CSC,

Code
<div class="c">$MESSAGE$</div>

Code
$('div.c').each(function () {
$(this).load(location.href + ' .c:eq(' + $(this).get() + ')');
});

Правда, не уверен, что сиё чудо будет работать.

  
CSC
Дата: Среда, 24.02.2010, 17:20 | Сообщение # 111
молчун
Группа: Пользователи
Пользователь №: 1446
Сообщений: 8
Получено оценок: 1
Infamous, а как вывести?
  
Infamous
Дата: Четверг, 25.02.2010, 16:57 | Сообщение # 112
говорун
Группа: Проверенные
Пользователь №: 316
Сообщений: 158
Получено оценок: 21
CSC, оба кода в вид материалов. Второй ставить в onclick ссылки для обновления контента.
  
Infamous
Дата: Четверг, 25.02.2010, 19:31 | Сообщение # 113
говорун
Группа: Проверенные
Пользователь №: 316
Сообщений: 158
Получено оценок: 21
Есть код

Code
var c = new XMLHttpRequest();
c.open('GET', '/forum', false);
c.send(null);
if(c.status == 200) {
alert(c.responseText);
}

Как вывести, к примеру, текст первой ссылки с запрошенной страницы. Пробовал c.responseText.getElementsByTagName('a')[0].innerHTML — не помогает.

  
CSC
Дата: Четверг, 25.02.2010, 23:07 | Сообщение # 114
молчун
Группа: Пользователи
Пользователь №: 1446
Сообщений: 8
Получено оценок: 1
Infamous, спасибо конечно, но я всего-то поставил этот
ucoz'вский скрипт, может кому пригодиться ;)
Code
<input type="hidden" name="aa" value="1" /><script type="text/javascript">document.write(_y8M)</script>


Сообщение отредактировал CSC - Четверг, 25.02.2010, 23:14
  
UnderShot
Дата: Суббота, 06.03.2010, 10:16 | Сообщение # 115
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Code
var abc=doc='переменная!';
alert(abc & doc); // 0

Почему?


Очень важная тема!
Filmzona — онлайн фильмы.
  
Aleko
Дата: Суббота, 06.03.2010, 14:10 | Сообщение # 116
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
UnderShot, потому что & это побитовая операция.
Code
var abc=doc=1;
alert(abc & doc); // 1


Бесплатные обои.
  
Aleko
Дата: Суббота, 06.03.2010, 14:15 | Сообщение # 117
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
Infamous, к примеру так:

Code
<script>
var _,c = new XMLHttpRequest();
c.open('GET', '/forum', false);
c.send(null);
if(c.status == 200) {
_=document.createElement('div');
_.innerHTML=c.responseText;
alert(_.getElementsByTagName('a')[0].innerHTML);
}
</script>


Бесплатные обои.
  
UnderShot
Дата: Суббота, 06.03.2010, 18:10 | Сообщение # 118
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Как сделать, что-бы при нажатии на кнопку создавался див с рандомным id и в нем оставался текст из textarea., + чтобы это все сохранялось в куках.
Code

<div id='status'>
Сюда помещаются новые дивы
</div>
<textarea id='stext'></textarea>
<input type='button' value='Добавить' id='button'/>


Очень важная тема!
Filmzona — онлайн фильмы.
  
Infamous
Дата: Суббота, 06.03.2010, 18:20 | Сообщение # 119
говорун
Группа: Проверенные
Пользователь №: 316
Сообщений: 158
Получено оценок: 21
Quote (UnderShot)
что-бы при нажатии на кнопку создавался див с рандомным id

Code
var e = document.createElement('div'), r = Math.floor(Math.random()*1000);
e.id = 'q' + r;
e.innerHTML = document.getElementById('stext').innerHTML;
document.getElementById('status').appendChild(e);
setCookie('div', 'id:' + r + '; html: ' + document.getElementById('stext').innerHTML, {expires: 365});


Сообщение отредактировал Infamous - Суббота, 06.03.2010, 18:21
  
UnderShot
Дата: Суббота, 06.03.2010, 21:20 | Сообщение # 120
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Infamous, спасибо


Code
el.style.display=(el.style.display=='none')?'':'none';

?'':'none'; — может кто-нить привести примеры с использованием этой фичи?


Очень важная тема!
Filmzona — онлайн фильмы.
  
chu4___x
Дата: Суббота, 06.03.2010, 21:49 | Сообщение # 121
говорун
Группа: Проверенные
Пользователь №: 13
Сообщений: 211
Получено оценок: 19
Code
alert(location.host.indexOf('google') != -1 ? 'Google' : '...');


«POST данные для модулей системы»

Сообщение отредактировал chu4___x - Суббота, 06.03.2010, 21:50
  
Aleko
Дата: Воскресенье, 07.03.2010, 02:39 | Сообщение # 122
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
UnderShot,
Code
<script>
var a=1;
var b=a==1?'да':'нет';
</script>


Бесплатные обои.
  
UnderShot
Дата: Понедельник, 08.03.2010, 01:21 | Сообщение # 123
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Code
<script>
var a=50-39-12+2+200-200+1+3-4+4-4+4-4+4-4+4-4-4-4-4-4+4+4+4+4+50-39-12+2+200-200+1+3-4+4-4+4-4+4-4+4-4-4-4-4-4+4+4+4+4-1+50-39-12+2+200-200+1+3 -4+4-4+4-4+4-4+4-4-4-4-4-4+4+4+4+4-1+50-39-12+2+200-200+1+3-4+4-4+4-4+4-4+4-4-4-4-4-4+4+4+4+4+50-39-12+2+200-200+1+3-4+4-4+4-4+4-4+4-4-4-4-4 -4+4+4+4+4-1+50-39-12+2+200-200+1+3-4+4-4+4-4+4-4+4-4-4-4-4-4+4+4+4+4-1-1+50-39-12+2+200-200+1+3-4+4-4+4-4+4-4+4-4-4-4-4-4+4+4+4+4+50-39-12+ 2+200-200+1+3-4+4-4+4-4+4-4+4-4-4-4-4-4+4+4+4+4-1+50-39-12+2+200-200+1+3-4+4-4+4-4+4-4+4-4-4-4-4-4+4+4+4+4-1+50-39-12+2+200-200+1+3-4+4-4+4- 4+4-4+4-4-4-4-4-4+4+4+4+4+50-39-12+2+200-200+1+3-4+4-4+4-4+4-4+4-4-4-4-4-4+4+4+4+4-1+50-39-12+2+200-200+1+3-4+4-4+4-4+4-4+4-4-4-4-4-4+4+4+4+ 4-1-1-1;
var b=a==1?'Правильно — ':'Неа — ';
alert(b+' ('+a+')')
</script>

Хы.


Очень важная тема!
Filmzona — онлайн фильмы.
  
DSC
Дата: Понедельник, 08.03.2010, 10:48 | Сообщение # 124
спикер
Группа: Проверенные
Пользователь №: 127
Сообщений: 516
Получено оценок: 41
UnderShot, Правильно — (1) =))

aka Latro
  
UnderShot
Дата: Понедельник, 08.03.2010, 14:17 | Сообщение # 125
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Code
s1=s.replace(re,'$2');
$2 — как этим пользоваться? Что означает $2?


Очень важная тема!
Filmzona — онлайн фильмы.
  
DSC
Дата: Понедельник, 08.03.2010, 14:52 | Сообщение # 126
спикер
Группа: Проверенные
Пользователь №: 127
Сообщений: 516
Получено оценок: 41
UnderShot, приведу пример:
Code
d=document.body;
d.innerHTML=d.innerHTML.replace(/(.*?),(.*?)/gi,'$1 - $2')

если ты поймёшь то хорошо, если нет, то объясняю:
каждые скобки это $n, первые скобки это всегда $1, и т.д., распологать доллоры можно как угодно


aka Latro
  
UnderShot
Дата: Понедельник, 08.03.2010, 14:58 | Сообщение # 127
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
DSC, $1 - $2 — значит первое заменять на второе?

Очень важная тема!
Filmzona — онлайн фильмы.
  
chu4___x
Дата: Понедельник, 08.03.2010, 16:22 | Сообщение # 128
говорун
Группа: Проверенные
Пользователь №: 13
Сообщений: 211
Получено оценок: 19
UnderShot, что в вашем случаи re?

«POST данные для модулей системы»
  
DSC
Дата: Понедельник, 08.03.2010, 16:34 | Сообщение # 129
спикер
Группа: Проверенные
Пользователь №: 127
Сообщений: 516
Получено оценок: 41
UnderShot, нет, значит что первые (.*?) - это $1, вторые (.*?) это $2

aka Latro
  
UnderShot
Дата: Понедельник, 08.03.2010, 19:43 | Сообщение # 130
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
chu4___x, хз, с интернета взял.
Допустим у меня есть текст заключенный в скобки, мне нужно заменить скобки на квадратные, + второй вариант заменить текст в скобках


Очень важная тема!
Filmzona — онлайн фильмы.
  
Infamous
Дата: Понедельник, 08.03.2010, 20:01 | Сообщение # 131
говорун
Группа: Проверенные
Пользователь №: 316
Сообщений: 158
Получено оценок: 21
Quote (UnderShot)
Допустим у меня есть текст заключенный в скобки, мне нужно заменить скобки на квадратные

Code
str = '(test)';
str = str.replace(/\((.*)\)/, '[$1]');
alert(str); // returns '[test]'
  
chu4___x
Дата: Понедельник, 08.03.2010, 20:56 | Сообщение # 132
говорун
Группа: Проверенные
Пользователь №: 13
Сообщений: 211
Получено оценок: 19
Code
'[' + str.match(/(\w+)/gi) + ']';

Тогда уж легче так.


«POST данные для модулей системы»
  
UnderShot
Дата: Понедельник, 08.03.2010, 21:14 | Сообщение # 133
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Infamous, chu4___x, спасибо, вроде понял.

Снова вопрос по var b=a==1?'да':'нет';. >:)
Я хочу изменить содержимое в диве, если условие выполняется правильно.

Code

z=document.getElementById('divz');
z.innerHTML='↑'?'↓':'↑';

Так должно быть? confused


Очень важная тема!
Filmzona — онлайн фильмы.
  
Infamous
Дата: Понедельник, 08.03.2010, 21:25 | Сообщение # 134
говорун
Группа: Проверенные
Пользователь №: 316
Сообщений: 158
Получено оценок: 21
Quote (UnderShot)
'↑'

Условие должно возвращать true/false, а тут просто строка.

Надо так:

Code
z=document.getElementById('divz');
z.innerHTML=(z.innerHTML=='↑')?'↓':'↑';
  
UnderShot
Дата: Понедельник, 08.03.2010, 21:26 | Сообщение # 135
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Infamous, понял, снова спасибо

Очень важная тема!
Filmzona — онлайн фильмы.
  
chu4___x
Дата: Понедельник, 08.03.2010, 21:41 | Сообщение # 136
говорун
Группа: Проверенные
Пользователь №: 13
Сообщений: 211
Получено оценок: 19
Infamous, скобки там не нужны, го и не мешают.

«POST данные для модулей системы»
  
sva2006
Дата: Вторник, 09.03.2010, 19:19 | Сообщение # 137
молчун
Группа: Пользователи
Пользователь №: 1921
Сообщений: 3
Code
<script>
txt = document.body.innerHTML;

// вместо матных слов пишете те слова которые вам надо
// каждое новое слово должно отделяться от предыдущего символом |
// перед и после слова пробелов быть не должно
// все написанные вами слова буду заменены на [cencored] (можно изменить на то что вам надо)
bad = /мат|сука|тварь|...Ваши слова...|лох/i;

while (txt.indexOf(bad)>=0) txt = txt.replace(bad, '<span style="color: #FF0000">[cencored]</span>');
document.body.innerHTML = txt;
</script>

Кто нибудь может,пожалуйста,переделать данный код на JQ?И в более правильной форме? Буду очень благодарен,данный скрипт когда был опубликован администратором данного блога.
  
Infamous
Дата: Вторник, 09.03.2010, 20:22 | Сообщение # 138
говорун
Группа: Проверенные
Пользователь №: 316
Сообщений: 158
Получено оценок: 21
sva2006,

Code
$('td.posttdMessage').each(function ()
{
this.innerHTML = this.innerHTML.replace(/мат1|мат2|мат3/g, '<span style="color: #FF0000">[cencored]</span>');
});


Сообщение отредактировал Infamous - Вторник, 09.03.2010, 20:24
  
Aleko
Дата: Среда, 10.03.2010, 02:58 | Сообщение # 139
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
брр.. зачем этот ужас переписывать ещё и на квери?

Бесплатные обои.
  
sva2006
Дата: Суббота, 13.03.2010, 15:36 | Сообщение # 140
молчун
Группа: Пользователи
Пользователь №: 1921
Сообщений: 3
Aleko, А есть вариант лучше?Для форума...
  
chu4___x
Дата: Суббота, 13.03.2010, 20:35 | Сообщение # 141
говорун
Группа: Проверенные
Пользователь №: 13
Сообщений: 211
Получено оценок: 19
sva2006, нет и не нужно.

«POST данные для модулей системы»
  
Aleko
Дата: Суббота, 13.03.2010, 21:44 | Сообщение # 142
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
sva2006, желающим извращаться посвящается:

Code
<script type="text/javascript">
(function(a,b){a.innerHTML=a.innerHTML.replace(new RegExp('([^а-я]|^)('+b.join('|')+')(?=[^а-я]|$)','gi'),'$1[restricted]')})(document.body,[
   
  "(при|)дур(аками|аком|ак|ок|ами|ой|ам|ачок|ку|е|а|кам|)",
  "дебил(кам|ка|ам|ов|ок|у|ке|ы|ки|)"
   
  ]);
</script>


Бесплатные обои.
  
WRC
Дата: Понедельник, 15.03.2010, 13:15 | Сообщение # 143
говорун
Группа: Проверенные
Пользователь №: 223
Сообщений: 149
Получено оценок: 11
как заменить допустим все надписи [lol] не зависимо от капса на <b>...
делаю так:
Code
<script>
q=document.body;
q.innerHTML=q.innerHTML.replace(/[lol]/gi,'<b>')
</script>

но тут понятно что квадратные скобки входят в состав символов RegExp... и заменить именно [lol] не получится
как тогда сделать то что я хочу?


Устраняем баг при просмотре материала

Сообщение отредактировал WRC - Понедельник, 15.03.2010, 13:16
  
Aleko
Дата: Понедельник, 15.03.2010, 13:55 | Сообщение # 144
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
\[lol\]

Бесплатные обои.
  
WRC
Дата: Понедельник, 15.03.2010, 14:40 | Сообщение # 145
говорун
Группа: Проверенные
Пользователь №: 223
Сообщений: 149
Получено оценок: 11
Aleko, я так понял что / и \ играют роль ' и " ??? ;)

Устраняем баг при просмотре материала
  
Aleko
Дата: Понедельник, 15.03.2010, 16:55 | Сообщение # 146
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
WRC, нет. / не играет никакой роли кроме своей собственной. \ экранирует один символ перед собой.

Бесплатные обои.
  
vladko95
Дата: Вторник, 16.03.2010, 20:57 | Сообщение # 147
говорун
Группа: Проверенные
Пользователь №: 51
Сообщений: 121
Получено оценок: 6
Как можно сделать обрезание строки?

Вот у меня есть код:

Code
$('.comment').each(function(){
var dot = $(this).text();
if (dot.length > 16) {dot = dot.slice(0, 15) + '...';}
$(this).text(dot);
});

но проблема вот в чём. После обработки строки скриптом, в ней пропадает ссылка. Тоесть ссылка становиться обычным текстом. В чем может быть проблема?

  
UnderShot
Дата: Вторник, 16.03.2010, 21:32 | Сообщение # 148
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
vladko95,
Code
var dot = $(this).html();


Очень важная тема!
Filmzona — онлайн фильмы.
  
chu4___x
Дата: Вторник, 16.03.2010, 23:10 | Сообщение # 149
говорун
Группа: Проверенные
Пользователь №: 13
Сообщений: 211
Получено оценок: 19
UnderShot, бред, не slice, а substr.
А вообще и на сервере можно обрезать.
Code
<?if(len($code$)>16)?><?substr($code$,0,15)?>...<?else?>$code$<?endif?>


«POST данные для модулей системы»
  
WRC
Дата: Пятница, 19.03.2010, 16:38 | Сообщение # 150
говорун
Группа: Проверенные
Пользователь №: 223
Сообщений: 149
Получено оценок: 11
задача: если у img отсутствует атрибут alt то автоматически к нему ставится alt=''...
делаю:
Code
<script>var g=document.images,i=g.length;while (i--) (!g[i].alt)?g[i].alt='':''</script>

...
но не выходит :(
что в скрипте не правильно? ;)

добавлю
----------------
а нет... в опере и хроме всё ок... проблема в Firefox


Устраняем баг при просмотре материала

Сообщение отредактировал WRC - Пятница, 19.03.2010, 16:47
  
Форум Studio AD » Сайтостроение » Общий форум по Javascript » JavaScript & jQuery (Вопросы и ответы.)
Поиск:
© Studioad.ru 2006 · 2010. Использование материалов форума на сторонних ресурсах без прямой обратной ссылки строго запрещено. Хостинг от uCoz.