Определение второго класса, зная первый
У элемента 2 класса: один статический, второй динамический. Так как я знаю статический мне нужно определить первый класс, не подскажете как это сделать с помощью JQuery?
Благодарю за внимание! |
можно спросить? а зачем тебе знать 2-ой класс?
|
Можно. Может вы заодно альтернативу придумаете. Один класс описывает стили блока, а второ показывает айди предмета(в общем это по моему проекту). Предметы могут повторятся, потому айди не подходит. Я записал в класс, но пока что мне страшно смотреть на то что я нашел в интернете.
|
<html> <head> <script src="http://code.jquery.com/jquery-latest.js"></script> <script> $(document).ready(function(){ var static = 'a1', reg = new RegExp('\s*'+static+'\s*','') var cl2 = $.trim($("div."+static).attr('class').replace(reg,'')); alert(cl2); }); </script> </head> <body> <div class="a1 b2">class="a1 b2"</div> </body> </html> |
Цитата:
Может использован и в качестве селектора a1[data-id_target="ID"]{ ... } |
Levelleor,
берёшь className элемента удаляешь что знаешь остаётся нужное |
рони,
Удалять явно не вариант... Хотя если потом вернуть... Возможно это хорошая идея. Но мне больше нравится другая. Deff, А обращаться этому через attr? |
Погодите секунду, дайте мне сформулировать вопрос поточнее, ибо я уже запутался...
|
Цитата:
|
Цитата:
$(document).ready(function(){ var static = 'a1' var cl2 = $("div."+static).clone().removeClass(static).attr('class'); alert(cl2); }); |
Deff,
<html> <head> <script src="http://code.jquery.com/jquery-latest.js"></script> <script> $(document).ready(function(){ var static = 'a1'; var cl2 = $.trim($("div."+static)[0].className.replace(static,'')); alert(cl2); }); </script> </head> <body> <div class="a1 b2">class="a1 b2"</div> </body> </html> |
Вот пример кода:
<div class="apeend_items"><div id="item_block_0" class="item_block active_item_block"> <div class="del_item_block">[X]</div> <p> Название:<input name="item_block_name_0" type="text">Комментарий:<input name="item_block_comm_0" type="text"></p> <!-- Вот тут я начинаю добавлять дополнительные блоки --> <div class="gameid3 chosen_item" style="background: rgba(0, 0, 0, 0) url(http://solomidcdn.com/images/champions_sprite_75.jpeg?v=1400720489) repeat scroll 0px -5700px / auto padding-box border-box;"> <div></div> </div> <div class="gameid3 chosen_item" style="background: rgba(0, 0, 0, 0) url(http://solomidcdn.com/images/champions_sprite_75.jpeg?v=1400720489) repeat scroll 0px -5700px / auto padding-box border-box;"> <div></div> </div> <!-- Тут конец --> </div></div> Далее я должен собрать все эти данные и отправить их на сервер для обработки: for (i=0; i<$('.apeend_items>div').length; i+=1) { submit[i]= [$(this).attr("id")), 'item_block_name_'+i+'', 'item_block_comm_'+i+'', [$('.apeend_items>div>input').attr('class').split(' ')[0]]]; } Тут я собираю в каждую строку массива все данные, которые я хочу отправить. Справа видно что квадратные скобки создают еще один массив в массиве, в нем я собираю эти предметы. Но я пока понятия не имею как обратится ко всем предметам по очереди. Скобки явно неправильно написаны, они там просто что бы я помнил куда мне писать правильный код. Я очень надеюсь что понятно обьяснил, ибо это невероятно непонятно для меня :) |
рони,
Ога, регулярка излишняя |
Я думаю что единственный вариант это добавить все блоки в отдельный блок и считать их оттуда. Deff,
Не объясните как работает скрипт, который вы тут обсуждаете? Я не понимаю ничего :) |
$(document).ready(function(){ var static = 'a1'; //Cтaтичecкий клacc $("div."+static).each(function(){ //ищем все элементы с этим статическим классом var cl2 = $.trim(this.className.replace(static,'')); //Вычисляем второй класс см [url]http://javascript.ru/basic/regular-expression+[/url] alert(cl2); }); }); |
Цитата:
|
Часовой пояс GMT +3, время: 01:10. |