2017-02-03 6 views
0

Я хочу увеличить размер шрифта родительского элемента. Когда я использую свой код, он увеличит размер шрифта всего тела, как я могу избежать этой проблемы? Пример, основанный на id="vs-1". Мне нужно увеличить размер шрифта текста родительского лидера гранта здесь 1940.Как получить родительский элемент с помощью jquery

$("li #vs-1").parents().css({ 
 
    'color': '#ff3600', 
 
    'font-size': '35px' 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul> 
 
    <li>1940 
 
    <ul> 
 
     <li style="background-color: rgb(255, 54, 0);" id="vs-1"></li> 
 
    </ul> 
 
    </li> 
 
    <li>1970 
 
    <ul> 
 
     <li id="vs-2"></li> 
 
    </ul> 
 
    </li> 
 
</ul>

Когда я использую этот код будет влиять на весь организм уль Li тег. Пожалуйста, дайте мне решение. Спасибо

+1

'.parent()' является то, что вы после этого. Кроме того, у вас есть ID (который должен быть уникальным в DOM btw), поэтому вам не нужно 'li # vs-1' просто делать' $ ('# vs-1'). Parent() ' –

+5

Вы пытались ввести текст ваше точное название в Google? - ваш ответ буквально первый и второй результат :) – Darren

+0

его не работает – Rijo

ответ

2

Вы были на правильном пути, вы должны просто указать родитель в .parents() вызова:

$('li #vs-1').parents("li").css({'color':'#ff3600','font-size':'35px'}); 
______________________^^^^ 

Надеется, что это помогает.

$("li #vs-1").parents('li').css({ 
 
    'color': '#ff3600', 
 
    'font-size': '35px' 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul> 
 
    <li>1940 
 
    <ul> 
 
     <li style="background-color: rgb(255, 54, 0);" id="vs-1"></li> 
 
    </ul> 
 
    </li> 
 
    <li>1970 
 
    <ul> 
 
     <li id="vs-2"></li> 
 
    </ul> 
 
    </li> 
 
</ul>

+0

@ Риджо вы пробовали это решение? –

+0

Я пробовал этот код его рабочий – Rijo

+0

, если мой вопрос правильный, пожалуйста, прошу проголосовать – Rijo

2

Обновлено: необходимо связаться с родителем, а затем использовать closest(). Пожалуйста, проверьте ниже snnippet

$(function(){ 
 
    $("li #vs-1").parent().closest("li").css({'color':'#ff3600','font-size':'35px'}); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul> 
 
    <li>1940 
 
    <ul> 
 
     <li style="background-color: rgb(255, 54, 0);" id="vs-1"></li> 
 
    </ul> 
 
    </li> 
 
    <li>1970 
 
    <ul> 
 
     <li id="vs-2"></li> 
 
    </ul> 
 
    </li> 
 
</ul>

+0

Я тоже пробовал этот код, но не работал – Rijo

+0

вы получаете сообщение об ошибке в консоли при попытке ответить – Yannjoel

+0

** 4 upvotes fot a non- рабочий ответ !! ** Извините, но 'ближайшее()' не будет работать в этой ситуации. Посмотрите на метод ** [ближайший() не работает как ожидалось] (http://stackoverflow.com/questions/41508008/плотнейшая метод-не-рабочий, как ожидалось) **. –

1

несколько вещей:
для того чтобы достигнуть того, что вы хотите, вы можете использовать $('...').parents()[1].css({'...'});
метод .parents() возвращает массив всех родителей, а первый элемент массива является непосредственный родитель.
Кроме того, поскольку у вас есть идентификатор элемента, который вы хотите выбрать, вам не нужно иметь ли он перед ним.
См docs

+0

ya bro ваш ответ правильный. Могу ли я проголосовать за мой вопрос – Rijo

1

Вы хотите только стиль родительского li, не то, что само по себе li. Попробуйте это:

$("li #vs-1").parent('li').css({ 
    'color': '#ff3600', 
    'font-size': '35px' 
}); 

$("li #vs-1").closest('li').css({ 
    'color': '#000', 
    'font-size': '16px' 
}); 

https://jsfiddle.net/9u9hb839/2/

+0

, он работает здесь – imudin07

+0

ya его рабочие благодарности за вашу работу. Так что мой вопрос верен, и я могу проголосовать за мой вопрос – Rijo