Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.01.2012, 01:26
Интересующийся
Отправить личное сообщение для swess Посмотреть профиль Найти все сообщения от swess
 
Регистрация: 25.12.2010
Сообщений: 16

Обрезать часть слов у всех <h3> при загрузке страницы
Есть около десятка новостей, у которых заголовок h3 имеет вид

010.какой-то заголовок
011.и вот такой скажем заголовок
042.и даже такой заголовок

необходимо отрезать первые четыре символа у всех заголовков, чтобы
убрать цифры и точку. причем это должно произойти сразу при загрузке страницы.

у заголовков можно ввести класс или уникальный айди.

попробовал как-то так, но работает.

<script type="text/javascript">

$( init );

function init() {

for(var i=1; i<=11; i++) {
$('h3#i').html($('h3#i').html().substring(4));
}
 

}
</script>


<h3 id="1">010.я заголовок</h3>
<h3 id="2">012.и я тоже заголовок</h3>


в js не силен, был бы очень благодарен, если кто подскажет,
как выполнить.

спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 14.01.2012, 01:42
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

длина числа в начале может в будущем увеличиться, так что ориентироваться пока можно по точке.

можно вернуть подстроку, начиная от точки, не включая :

var str = "010.я заголовок";


var pos = str.indexOf(".") + 1; // прибавляем 1 к позиции точки, чтобы её пропустить
var newStr = str.substring(pos); 

alert(str+'\n\n'+newStr);


подумайте, как это можно использовать. будут вопросы - обращайтесь в эту тему.
Ответить с цитированием
  #3 (permalink)  
Старый 14.01.2012, 02:03
Интересующийся
Отправить личное сообщение для swess Посмотреть профиль Найти все сообщения от swess
 
Регистрация: 25.12.2010
Сообщений: 16

Спасибо за вариант.
Только довести его до ума, все же не получается.
Эти действия должны применятся ко всем h3, а тут или цикл или
я даже не знаю, чтобы у всех сработало.
Ответить с цитированием
  #4 (permalink)  
Старый 14.01.2012, 02:14
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,491

Если на 100% уверен в размере шрифта, то можно и так, лол.)
<style>
h3{
overflow:hidden;
font: 20px arial, sans-serif;
text-indent:-40px;
}
</style>
<h3 id="1">010.я заголовок</h3>
<h3 id="2">012.и я тоже заголовок</h3>


А вообще это в любом случае должно делаться не js, а на стороне сервера.
__________________
29375, 35
Ответить с цитированием
  #5 (permalink)  
Старый 14.01.2012, 02:20
Интересующийся
Отправить личное сообщение для swess Посмотреть профиль Найти все сообщения от swess
 
Регистрация: 25.12.2010
Сообщений: 16

я не был бы столь категоричен. в ряде случаев такое приходится делать на клиенте. может быть это и через одно место, но рабочий код получить в любом случае можно. а то что вы предлагаете с css, это не вариант.
Ответить с цитированием
  #6 (permalink)  
Старый 14.01.2012, 02:23
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,491

А я говорю в любом.
__________________
29375, 35
Ответить с цитированием
  #7 (permalink)  
Старый 14.01.2012, 02:27
Интересующийся
Отправить личное сообщение для swess Посмотреть профиль Найти все сообщения от swess
 
Регистрация: 25.12.2010
Сообщений: 16

это не решает поставленной в данном случае задачи. а задача - сделать это на js.
Ответить с цитированием
  #8 (permalink)  
Старый 14.01.2012, 02:33
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,491

Деньги на бочку.
__________________
29375, 35
Ответить с цитированием
  #9 (permalink)  
Старый 14.01.2012, 02:49
Интересующийся
Отправить личное сообщение для swess Посмотреть профиль Найти все сообщения от swess
 
Регистрация: 25.12.2010
Сообщений: 16

пока вы вели демагогию, я написал короткий и вполне решающий задачу код
<script type="text/javascript">

$( init );

function init() {





for(var i=1; i<=3; i++) {

var el = $('#n' + i);
el.html(el.html().substring(4));

}

}
 


</script>


<h3 id="n1">010.я заголовок</h3>
<h3 id="n2">012.и я тоже заголовок</h3>
Ответить с цитированием
  #10 (permalink)  
Старый 14.01.2012, 06:44
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

можно было чуть проще, без использования впустую идентификаторов :
$("h3").each(function(){ 
    this.innerHTML = this.innerHTML.substring(4);
});
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов функции при загрузке страницы disallow jQuery 6 24.07.2012 15:19
Установить selected в динамических списках при загрузке страницы FlintOFF jQuery 2 12.03.2010 10:42
jQuery UI datepicker -- не биндится при загрузке mkrylov jQuery 4 20.05.2009 20:36
Объект при загрузке страницы и после операций над ним fact jQuery 7 20.04.2009 22:02
Срабатывание скрипта при загрузке страницы bormax Общие вопросы Javascript 3 03.04.2008 09:57