Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.05.2017, 13:58
Профессор
Отправить личное сообщение для Vaska Посмотреть профиль Найти все сообщения от Vaska
 
Регистрация: 08.05.2017
Сообщений: 178

Добавить div с классом перед таблицей
Приветствую всех!

На странице есть таблица:

<table style="WIDTH:100%" cellspacing="1" cellpadding="0" border="0">
	<tbody>
		<tr>
			<td></td>
			<td style="VERTICAL-ALIGN:middle;WIDTH:33%;BACKGROUND-COLOR:#999999">&nbsp; <font color="#ffffff">МАРКА МАГНИТОЛЫ</font></td>
			<td style="VERTICAL-ALIGN:middle;WIDTH:33%;BACKGROUND-COLOR:#999999">&nbsp; <font color="#ffffff">ПРОИЗВОДИТЕЛЬ</font></td>
			<td style="VERTICAL-ALIGN:middle;WIDTH:33%;BACKGROUND-COLOR:#999999"><font color="#ffffff">ТИП ПАМЯТИ</font></td>
			<td style="VERTICAL-ALIGN:middle;WIDTH:33%;BACKGROUND-COLOR:#999999"><font color="#ffffff">ЦЕНА</font></td>
		</tr>
		<tr>
			<td></td>
			<td>&nbsp;</td>
			<td>&nbsp;</td>
			<td><p></p></td>
			<td>150&nbsp;руб.</td>
		</tr>
		<tr>
			<td></td>
			<td>&nbsp;</td>
			<td>&nbsp;</td>
			<td></td>
			<td>150&nbsp;руб.</td>
		</tr>
	</tbody>
</table>


Нужно её почистить и обернуть в <div class="table-responsive">...</div>

Как работать внутри тегов я знаю.
Написал код:
<script type="text/javascript">
	$(document).ready(function(){
	   $("table").addClass("table table-striped");
	   $("table").removeAttr("cellspacing").removeAttr("cellpadding").removeAttr("style").removeAttr("border");
	   $("tr").removeAttr("style");
	   $("td").removeAttr("style");
	   $("font").attr("color", "#c00");
	});
</script>

Работает, лишнее почистилось.
А вот как работать за пределами тегов я не знаю.
Нужно перед тегом <table поставить <div class="table-responsive"> и после тега </table> поставить </div>

Можете помочь?

Заранее, спасибо!

Последний раз редактировалось Vaska, 26.05.2017 в 14:00.
Ответить с цитированием
  #2 (permalink)  
Старый 26.05.2017, 14:30
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от Vaska
Нужно перед тегом <table поставить <div class="table-responsive"> и после тега </table> поставить </div>
Дык!
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='https://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
.table-responsive {
	border: 1px solid;
}
</style>
<script type='text/javascript'>
$(function(){
	$('table').wrap('<div class="table-responsive"></div>');
});
</script>
</head>
<body>
<table>
	<td>Test</td>
</table>
</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 26.05.2017, 15:36
Профессор
Отправить личное сообщение для Vaska Посмотреть профиль Найти все сообщения от Vaska
 
Регистрация: 08.05.2017
Сообщений: 178

Да, работает.
Спасибо!
И есть ещё один вопрос: как между тегами <td> убрать теги <p>?
Между тегами <p>есть текст</p>. Нужно, чтобы тест оставался на месте.

Последний раз редактировалось Vaska, 26.05.2017 в 15:38.
Ответить с цитированием
  #4 (permalink)  
Старый 26.05.2017, 16:38
Кандидат Javascript-наук
Отправить личное сообщение для Diphenyl Oxalate Посмотреть профиль Найти все сообщения от Diphenyl Oxalate
 
Регистрация: 21.01.2017
Сообщений: 139

Vaska,

$("p").unwrap();
Ответить с цитированием
  #5 (permalink)  
Старый 26.05.2017, 16:54
Профессор
Отправить личное сообщение для Vaska Посмотреть профиль Найти все сообщения от Vaska
 
Регистрация: 08.05.2017
Сообщений: 178

Сообщение от Diphenyl Oxalate Посмотреть сообщение
Vaska,

$("p").unwrap();
1. нет, не работает вообще на странице. Странно.
2. нужно, не на всей странице удалять теги <p>, а только в таблице.
Ответить с цитированием
  #6 (permalink)  
Старый 26.05.2017, 17:15
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от Diphenyl Oxalate Посмотреть сообщение
Vaska,

$("p").unwrap();
не не не
вот!
$('td').each(function(){
   var data = $(this).children("p").html();
   $(this).children("p").detach();
   $(this).html(data);
});
Ответить с цитированием
  #7 (permalink)  
Старый 26.05.2017, 17:36
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от Vaska
как между тегами <td> убрать теги <p>?
Между тегами <p>есть текст</p>. Нужно, чтобы тест оставался на месте.
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
   p{
     background-color: hsla(0, 100%, 50%, 1);
     color: hsla(0, 0%, 100%, 1);
   }

  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function() {
   $("td p").replaceWith(function() {
   return this.innerHTML
})
});
  </script>
</head>

<body>
<p>123</p>
<table>
  <tr>
  <td><p>Test</p></td>
  </tr>
  <tr>
  <td><p>Test2</p></td>
  </tr>
</table>
<p>456</p>

</body>
</html>
Ответить с цитированием
  #8 (permalink)  
Старый 26.05.2017, 17:44
Профессор
Отправить личное сообщение для Vaska Посмотреть профиль Найти все сообщения от Vaska
 
Регистрация: 08.05.2017
Сообщений: 178

Сообщение от j0hnik Посмотреть сообщение
не не не
вот!
$('td').each(function(){
   var data = $(this).children("p").html();
   $(this).children("p").detach();
   $(this).html(data);
});
Вот, это работает.
Спасибо!
Ответить с цитированием
  #9 (permalink)  
Старый 26.05.2017, 17:51
Профессор
Отправить личное сообщение для Vaska Посмотреть профиль Найти все сообщения от Vaska
 
Регистрация: 08.05.2017
Сообщений: 178

рони,
Ваш вариант тоже прекрасно работает.
Спасибо!
Ответить с цитированием
  #10 (permalink)  
Старый 26.05.2017, 17:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от Vaska
Вот, это работает.
внешне да, и для данного случая возможно достаточно, но лучше вариант в пост №7
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как добавить свой обработчик перед остальными? 12345678 Events/DOM/Window 14 24.06.2015 16:19
вставка div перед элементом redwert Общие вопросы Javascript 2 25.03.2013 20:45
Добавить элементы в div и обрабатывать события по ним. Возможно? Smith324 Events/DOM/Window 2 15.02.2013 05:18
добавить в div код Grever Events/DOM/Window 8 23.06.2011 13:26
проблема с div И animate g00000dman jQuery 2 24.03.2011 23:34