Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.10.2013, 00:49
Новичок на форуме
Отправить личное сообщение для Yan.Total Посмотреть профиль Найти все сообщения от Yan.Total
 
Регистрация: 05.03.2013
Сообщений: 6

Добавить элементу аттрибут, если другой элемент содержит текст
Добрый вечер!
На странице есть div'ы с одинаковыми названи. Вот примерная разметка:
<div class="item">
<span class="title">Первое значение</span>
<input type="text">
</div>
<div class="item">
<span class="title">Второе значение</span>
<input type="text">
</div>
<div class="item">
<span class="title">Третье значение</span>
<input type="text">
</div>

И следующая задача:
если в тайтле (.item span.title) содержится определенный текст (слово "Первое"), то добавляем аттрибут инпуту (.item input). Ну и такое условие выполняем для всех блоков div.item
Ответить с цитированием
  #2 (permalink)  
Старый 07.10.2013, 01:29
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Сообщение от Yan.Total
то добавляем аттрибут инпуту
какой атрибут?
Ответить с цитированием
  #3 (permalink)  
Старый 07.10.2013, 01:42
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Yan.Total,

<!DOCTYPE HTML>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
</head>

<body>
<div class="item">
<span class="title">Первое значение</span>
<input type="text">
</div>
<div class="item">
<span class="title">Второе значение</span>
<input type="text">
</div>
<div class="item">
<span class="title">Третье значение</span>
<input type="text">
</div>
<div class="item">
<span class="title">Первое значение</span>
<input type="text">
</div>
<script>
$('.item span.title:contains("Первое")').each(function(indx, element){
  $(element).next().css({border : '5px red solid'});
});
</script>
</body>
</html>
Ответить с цитированием
  #4 (permalink)  
Старый 07.10.2013, 08:36
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

рони,

Почему не?

$('.item span.title:contains("Первое")').each(function() {
  $(this).next().css({border: '5px red solid'});
});


Или:

$('.item span.title:contains("Первое")').next().css({border: '5px red solid'});
Ответить с цитированием
  #5 (permalink)  
Старый 07.10.2013, 14:10
Новичок на форуме
Отправить личное сообщение для Yan.Total Посмотреть профиль Найти все сообщения от Yan.Total
 
Регистрация: 05.03.2013
Сообщений: 6

а как можно без использования next()? т.е. я написал примерную структуру, на самом деле она немного сложнее.
Если так, то выделяется всё:
$('.el-good p.title:contains("заправка")').each(function(indx, element){
  $('.el-good .count-add').css({border : '5px red solid'});
});

Вот листинг:
<tbody>
                            <tr class="fl">
                                <td colspan="4"></td>
                                <td>Кол-во сдаваемых баллонов</td>
                                <td>Доп. сумма за баллоны</td>
                            </tr>
                            <tr class="el-good" data-id="001" data-cost="1358" data-count="1" data-addcost="510" data-addcount="0">
                                <td>
                                    <p class="title"><span data-toggle="tooltip" class="action remove-el remove-red" data-original-title="Убрать товар"></span> Газовый баллон 12 л (заправленный)</p>
                                    <div class="about">
                                      <img src="img/card/b1.jpg" alt="" width="50" class="pull-left">
                                      <ul class="line-list">
                                        <li><span>Вес газа 3 кг</span></li>
                                        <li><span>Масса пустого баллона — 3,1 кг</span></li>
                                        <li><span>Габариты — 220х290 мм</span></li>
                                      </ul>
                                    </div>
                                </td>
                                <td class="cost">1 358 руб</td>
                                <td class="count"><input name="count[001]" type="text" autocomplete="off" value="1"></td>
                                <td class="summ">1 358 руб</td>
                                <td class="count-add centered" style="border: 5px solid red;"><input name="countadd[001]" type="text" autocomplete="off" value="0"></td>
                                <td class="add-cost centered">510 руб</td>
                            </tr>
                            <tr class="el-good" data-id="002" data-cost="2648" data-count="2" data-addcost="980" data-addcount="2">
                                <td>
                                    <p class="title"><span data-toggle="tooltip" class="action remove-el remove-red" data-original-title="Убрать товар"></span> Газовый баллон 50 л (заправленный)</p>
                                    <div class="about">
                                      <img src="img/card/b1.jpg" alt="" width="50" class="pull-left">
                                      <ul class="line-list">
                                        <li><span>Вес газа 3 кг</span></li>
                                        <li><span>Масса пустого баллона — 3,1 кг</span></li>
                                        <li><span>Габариты — 220х290 мм</span></li>
                                      </ul>
                                    </div>
                                </td>
                                <td class="cost">2 648 руб</td>
                                <td class="count"><input name="count[002]" type="text" autocomplete="off" value="2"></td>
                                <td class="summ">5 296 руб</td>
                                <td class="count-add centered" style="border: 5px solid red;"><input name="countadd[002]" autocomplete="off" type="text" value="2"></td>
                                <td class="add-cost centered"> — </td>
                            </tr>
							<tr class="el-good" data-id="002" data-cost="2648" data-count="2" data-addcost="980" data-addcount="2">
                                <td>
                                    <p class="title"><span data-toggle="tooltip" class="action remove-el remove-red" data-original-title="Убрать товар"></span> Газовый баллон 50 л (заправка баллона)</p>
                                    <div class="about">
                                      <img src="img/card/b1.jpg" alt="" width="50" class="pull-left">
                                      <ul class="line-list">
                                        <li><span>Вес газа 3 кг</span></li>
                                        <li><span>Масса пустого баллона — 3,1 кг</span></li>
                                        <li><span>Габариты — 220х290 мм</span></li>
                                      </ul>
                                    </div>
                                </td>
                                <td class="cost">2 648 руб</td>
                                <td class="count"><input name="count[002]" type="text" autocomplete="off" value="2"></td>
                                <td class="summ">5 296 руб</td>
                                <td class="count-add centered" style="border: 5px solid red;"><input name="countadd[002]" autocomplete="off" type="text" value="2"></td>
                                <td class="add-cost centered"> — </td>
                            </tr>
                        </tbody>
Ответить с цитированием
  #6 (permalink)  
Старый 07.10.2013, 14:52
Аватар для mi.rafaylik
Кандидат Javascript-наук
Отправить личное сообщение для mi.rafaylik Посмотреть профиль Найти все сообщения от mi.rafaylik
 
Регистрация: 07.12.2012
Сообщений: 113

Yan.Total, если нужно подсветить input, который находится в этом же .item, то так:
$('.item span.title:contains("Первое")').each(function(){
  $(this).parent('.item').children('input').css({border: '5px red solid'});
});

Последний раз редактировалось mi.rafaylik, 07.10.2013 в 15:27.
Ответить с цитированием
  #7 (permalink)  
Старый 07.10.2013, 15:01
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Yan.Total,
$('tr.el-good:contains("заправка")').each(function(indx, element){
  $('.count-add', element).css({border : '5px #33FF00 solid'});
});

или если инпут в этом классе
$('tr.el-good:contains("заправка")').each(function(indx, element){
  $('.count-add input', element).css({border : '5px #33FF00 solid'});
});

Последний раз редактировалось рони, 07.10.2013 в 15:03.
Ответить с цитированием
  #8 (permalink)  
Старый 07.10.2013, 15:17
Новичок на форуме
Отправить личное сообщение для Yan.Total Посмотреть профиль Найти все сообщения от Yan.Total
 
Регистрация: 05.03.2013
Сообщений: 6

mi.rafaylik, рони, спасибо! Получилось
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При клике ссылки, открыть DIV блок, и при клике ещё раз, закрыть его Simon Общие вопросы Javascript 59 28.05.2017 17:31
Вопрос: И опять про offsetLeft... sigurd Общие вопросы Javascript 11 04.10.2010 14:06
Как добавить элемент в обьект json Юрий Игоревич Общие вопросы Javascript 2 26.10.2009 15:01
Добавить активный элемент Wirty jQuery 5 09.08.2009 16:06
Вопрос по относительному позиционированию DIV XPOMOB (X)HTML/CSS 11 15.07.2009 17:02