поиск элемента по одному по части значения атрибута
есть страница с элементами с атрибутом rel, в котором прописаны id:
<p rel='1'></p> <p rel='3'></p> <p rel='10'></p> .... происходит выборка с определенным значением id: $('p[rel='+id+']') {...}; и выборка элементов с значениями не равными id: $('p[rel!='+id+']') {...}; необходимо сделать такую же выборку при условии, что в rel может быть прописано несколько id через пробелы: <p rel='1 14 20'></p> <p rel='2 7 11'></p> <p rel='44 3 33'></p> .... Пробовал использовать ~= вместо =, но не работает. |
$('p[rel!="'+id1+' '+id2+' '+id3+'"]');
|
Цитата:
|
zevilz,
Тут ищется не id - а контент атрибута |
zevilz,
$('p[rel~='+id+']') |
Цитата:
|
<script src="http://code.jquery.com/jquery-latest.js"></script> <script> $(document).ready(function(){ var id1=2,id2=7,id3=11; var summ = ''+id1+' '+id2+' '+id3; $('p[rel="'+summ+'"]').each(function(){ alert($(this).html()); }); }); </script> <p rel='1 14 20'>1 14 20</p> <p rel='2 7 11'>2 7 11</p> <p rel='44 3 33'>44 3 33</p> |
Цитата:
<!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> <p rel='1 14 20'>12345</p> <p rel='2 7 11'>12345</p> <p rel='44 3 33'>12345</p> <script> var id = 1; $('p[rel~='+id+']').css('background','red') </script> </body> </html> |
id передается только 1
вот полная версия скрипта: <script src="http://code.jquery.com/jquery-latest.js"></script> <script type="text/javascript"> $(document).ready(function() { $('.menu li a').click(function() { $('.menu li').removeClass('selected'); $(this).parent('li').addClass('selected'); imgWidth = '52px'; thisItem = $(this).attr('rel'); if(thisItem != "all") { $('.item li[rel='+thisItem+']').stop() .animate({'width' : imgWidth, 'opacity' : 1, 'marginRight' : '.5em', 'marginLeft' : '.5em' }); $('.item li[rel!='+thisItem+']').stop() .animate({'width' : 0, 'opacity' : 0, 'marginRight' : 0, 'marginLeft' : 0 }); } else { $('.item li').stop() .animate({'opacity' : 1, 'width' : imgWidth, 'marginRight' : '.5em', 'marginLeft' : '.5em' }); } }) $('.item li img').animate({'opacity' : 0.5}).hover(function() { $(this).animate({'opacity' : 1}); }, function() { $(this).animate({'opacity' : 0.5}); }); }); </script> <style> ul { margin: 0; text-align: left; } ul.menu { margin-left: .5em; margin-bottom: 1em; } ul.menu li { list-style-type: none; display: inline-block; font-weight: bold; text-shadow: 1px 1px 0px #f3f5da; padding: 2px 15px; } .selected { -webkit-border-radius: 15px; -moz-border-radius: 5px; border-radius: 5px; background: #acac75; -webkit-box-shadow: 1px 1px 0px #8c8c5d; } .selected a, .selected a:visited { text-shadow: 1px 1px 0px #8c8c60; color: #fff; } ul.item li { list-style-type: none; display: block; float: left; margin: .5em; } ul.item li img { border: 5px solid #fff; -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; -webkit-box-shadow: 0px 0px 5px #ac987e; -moz-box-shadow: 0px 0px 5px #ac987e; box-shadow: 0px 0px 5px #ac987e; } a, a:visited { color: #161616; text-decoration: none; } </style> <ul class="menu"> <li class="selected"><a href="#" rel="all">Все уроки</a></li> <li><a href="#" rel="jquery">jQuery</a></li> <li><a href="#" rel="css">CSS</a></li> <li><a href="#" rel="php">PHP</a></li> </ul> <ul class="item"> <li rel="jquery"><a href="" target="_blank"><img src="rhttgbh" /></a></li> <li rel="jquery"><a href="" target="_blank"><img src="edhdethg" /></a></li> <li rel="css"><a href="" target="_blank"><img src="hetrheth" /></a></li> <li rel="css"><a href="" target="_blank"><img src="rthrtg" /></a></li> <li rel="php"><a href="" target="_blank"><img src="ethetrh" /></a></li> <li rel="jquery"><a href="" target="_blank"><img src="hetr" /></a></li> <li rel="css"><a href="" target="_blank"><img src="werhewrt" /></a></li> <li rel="php"><a href="" target="_blank"><img src="wtrhwetr" /></a></li> </ul> |
zevilz,
1. у Вас тут +thisItem+' , а не id И оно единственное.. ибо как то нужно проверять соседние элементы если нун втащить из str='1 22 55' str='1 22 55' var arr = str.split(/\s+/); alert(arr[0]); alert(arr[1]); alert(arr[2]) |
Часовой пояс GMT +3, время: 13:40. |