Добавить элементу аттрибут, если другой элемент содержит текст
Добрый вечер! :)
На странице есть 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 :) |
Цитата:
|
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> |
рони,
Почему не? $('.item span.title:contains("Первое")').each(function() { $(this).next().css({border: '5px red solid'}); }); Или: $('.item span.title:contains("Первое")').next().css({border: '5px red solid'}); |
а как можно без использования 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> |
Yan.Total, если нужно подсветить input, который находится в этом же .item, то так:
$('.item span.title:contains("Первое")').each(function(){ $(this).parent('.item').children('input').css({border: '5px red solid'}); }); |
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'}); }); |
mi.rafaylik, рони, спасибо! Получилось :)
|
Часовой пояс GMT +3, время: 04:07. |