Javascript.RU

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

Замена значений полей elem.innerHTML.replace
Всем привет.

Никак не выходит заменить выражения с английского на русский в таблице.

Заменяется только 'Name' на 'Название', а следующие поля остаются на английском.

Требуется помощь в решении данного вопроса

<table id="indexlist">

	<tr class="indexhead">
		<th class="indexcolicon">
			<img src="/listing/.styles/icons/blank.svg" />
		</th>
		<th class="indexcolname">
			<a href="?C=N;O=D">Name</a>
		</th>
		<th class="indexcolsize">
			<a href="?C=S;O=A">Size</a>
		</th>
		<th class="indexcoldesc">
			<a href="?C=D;O=A">Description</a>
		</th>
	</tr>

	<tr class="even">
		<td class="indexcolicon">
			<img src="/listing/.styles/icons/folder-home.svg" />
		</td>
		<td class="indexcolname">
			<a href="/">Parent Directory</a>
		</td>
		<td class="indexcolsize">
			-
		</td>
		<td class="indexcoldesc">
			<span class='description'>↑ Наверх</span>
		</td>
	</tr>
   
</table>


elem = document.getElementsByClassName ('th.indexcolname') [0];
elem.innerHTML = elem.innerHTML.replace ('Name', 'Название');
elem = document.getElementsByClassName ('th.indexcolsize') [0];
elem.innerHTML = elem.innerHTML.replace ('Size', 'Размер');
elem = document.getElementsByClassName ('th.indexcoldesc') [0];
elem.innerHTML = elem.innerHTML.replace ('Description', 'Описание');
elem = document.getElementsByClassName ('indexcolname') [0];
elem.innerHTML = elem.innerHTML.replace ('Parent Directory', 'Наверх');


В данном коде указал th. с классами потому, что требуются замены именно на th-полях, чтобы случайно не произошло замены данных выражений в столбцах td.
К сожалению изменить выражения в самой таблице не представляется возможным, потому что она формируется модулем апача, а именно mod_autoindex

Последний раз редактировалось biffick, 02.12.2019 в 01:19. Причина: Добавил важную информацию про Apache mod_autoindex
Ответить с цитированием
  #2 (permalink)  
Старый 02.12.2019, 04:06
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Чье это, почему не заменить руками в исходнике, почему скриптом меняется?

Если скрипт, то в TH:
var reply = ['Название', 'Размер', 'Описание'];
document.querySelectorAll('#indexlist th a').forEach(function(e, i) {
    e.textContent = reply[i]    
});


А Parent Directory, это в одной строке таблицы или их много?
Ответить с цитированием
  #3 (permalink)  
Старый 02.12.2019, 04:54
Новичок на форуме
Отправить личное сообщение для biffick Посмотреть профиль Найти все сообщения от biffick
 
Регистрация: 01.06.2011
Сообщений: 9

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

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

Parent Directory находится в ячейке TD и используется один раз, эта ссылка ведёт на каталог выше.
Беда в том, что нужно как-то перевести только это значение.
Т.е. чтобы если вдруг в листинге появится файл, содержащий в своём названии 'Parent Directory', то оно не перевелось...

Скрин приложил

UPD: ваш код работает, заменилось всё, как нужно. Осталось разобраться с 'Parent Directory' :-)
Изображения:
Тип файла: jpg Listing.jpg (33.1 Кб, 4 просмотров)

Последний раз редактировалось biffick, 02.12.2019 в 04:58. Причина: Добавил инфу про замену
Ответить с цитированием
  #4 (permalink)  
Старый 02.12.2019, 05:11
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Ясно.

document.querySelector('tr.even a').textContent = 'Наверх';
Ответить с цитированием
  #5 (permalink)  
Старый 02.12.2019, 05:17
Новичок на форуме
Отправить личное сообщение для biffick Посмотреть профиль Найти все сообщения от biffick
 
Регистрация: 01.06.2011
Сообщений: 9

laimas, большое спасибо, всё работает, как нужно. Плюс в карму кинул :-)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сумма значений полей при нажатии на них Alex2033 Общие вопросы Javascript 11 06.06.2017 19:55
Генерация значений для полей Федерико Элементы интерфейса 0 23.03.2016 19:42
Замена значений массива Sergei-b84 Общие вопросы Javascript 4 10.04.2015 13:29
Замена значений в select derbass jQuery 2 23.01.2013 20:10
сохранить значений полей формы в куки ivanweb Общие вопросы Javascript 1 19.01.2012 10:36