Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Трудная задачка (https://javascript.ru/forum/jquery/33600-trudnaya-zadachka.html)

RodgerFox 30.11.2012 14:20

А как задать class='on' первому элементу не через html, а js?

RodgerFox 30.11.2012 14:30

Первому списку понятно как, а вот что бы каждому не понятно =\ Посмотрел документацию, что вы скинули.

ksa 30.11.2012 14:32

Цитата:

Сообщение от RodgerFox
А как задать class='on' первому элементу не через html, а js?

Например использовать такой селектор
http://jquery-docs.ru/Selectors/firstChild/

RodgerFox 30.11.2012 15:40

Я его и использовал, но работает почему то только к первому дочернему элементу ( т.е. li) относительно первого родителя (ul) к остальным не присваивается.
Вот как пробовал:
// 1
$(this).closest('ul li:first').addClass('radioOn');
// 2
$("li:first").addClass("radioOn");
// 3
$(e.target).closest('ul').find('li').addClass('radioOn');
// 4 
$('ul li:first').addClass('radioOn');

// Способ по изощрение обходим все таблицы и собираем с каждой по первой строке
var res = $("ul").map(function(){  
    // this - таблица
    return $("li:first", this);
}).get();

// res - array
// превращаем в коллекцию
res = $(res);

// и работаем с ней
res.addClass('radioOn');
// или 
res.css('radioOn');

И вот так еще:
$(document).ready(function(){

    $("ul li:first-child") {
        $(this).addClass("radioOn"); };
  });​


ВО вот так, работает, использую перед вашим скриптом
$('ul li:first-child').addClass('on');

RodgerFox 30.11.2012 16:00

Подскажите еще пожалуйста)))
А как взять дочерний дочернего элемента?
Ради валидности инпут заворачиваю в <p>, т.е. получается вот так:
<ul>
<li><p><input /></p></li>
<li><p><input /></p></li>
</ul>
Поэтому класс добавляется к p, а не к li. Но это так для саморазвития если не трудно. Мне и такой вариант уже чудо и подстрою под себя.

RodgerFox 30.11.2012 16:21

А вообще это не столь важно.
Использую html 5 поэтому инпут без слеша / в конце и можно не использовать параграф.
Большое вам спасибо. Вы очень мне помогли.

ksa 30.11.2012 16:44

Цитата:

Сообщение от RodgerFox
А как взять дочерний дочернего элемента?

Все по аналогии... :)

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
.on {
	color: red;
	background-color: yellow;
}
</style>
<script type="text/javascript">
$(document).ready(function (){
	$('ul > li:first-child > p').addClass('on');
});
</script>
</head>
<body>
<ul>
	<li><p><input />item 1</p></li>
	<li><p><input />item 2</p></li>
</ul>
<ul>
	<li><p><input />item 1</p></li>
	<li><p><input />item 2</p></li>
</ul>
</body>
</html>


Часовой пояс GMT +3, время: 10:53.