Пожалуйста, обратите внимание, что это не прямой ответ на вопрос, но я чувствую, что это было бы полезно для ОП и, надеюсь, другие
Хотя я определенно aggree, что в вашем случае вы можете проще всего использовать CSS для (пожалуйста, см. ответ @ lennart, например, о выборе ребенка), возможно, будут случаи, когда вам нужно быть более динамичными при применении стиля, вы можете использовать jQuery .css()
и подобные функции, возможно, действительно использовать простой старый javascript, однако это обычно приводит к обходу dom, который может быть затруднен даже с jquery, вторым вариантом будет динамическое добавление таблиц стилей, которые также могут быть весьма эффективными, третьим вариантом будет изменение/управление <style>
тег, например, вы можете иметь стиль, определенный в некоторых данных JSON, где мы можем быть немного творческой и построить строку CSS и добавить к <style>
// turn #accordion into a simple accordion menu
// adds style to the head from json data
$(document).ready(function() {
// hide <ul> nested in accordion
$('#accordion').find('ul').hide();
// add click event to accordion .heading
$('#accordion').find('.heading').click(function(e) {
// do not follow anchor
e.preventDefault();
// slide up any open sections
if(!($(this).hasClass('open'))) {
$('.open').removeClass('open').next().slideUp();
}
$(this).addClass('open').next().slideToggle();
});
// a function that parses json and
// appends it to <style>
function addStyleFromJson(json) {
// turn json into normal string
var style = JSON.stringify(json);
// remove apostrophes, colons before {, opening and closing {}
style = style.replace(/(")|(:(?=\{))|(^\{)|(\}$)/g, '');
// remove commas after }
style = style.replace(/(\}|\;),/g, function($0, $1){
return $1 ? $1 + '' : $0;
});
// prepend this style with any style declared in <head>
style = $('style').text() + style;
// append style element to head
$('style').text(style);
}
// load some style
$.ajax({
url: 'http://dl.dropbox.com/u/47426368/somejson.js',
dataType: 'jsonp',
jsonp: false,
jsonpCallback: 'myCallback',
cache: true,
success: addStyleFromJson
});
});
в этой демонстрации мы переходим HTML в стиле аккордеона затем загрузите json из удаленного места и проанализируйте его в теге <style>
(предположим, что он уже существует).Как я уже говорил ранее, это не самый лучший вариант, и есть много вариантов, так как я сказал в своем комментарии, что вы действительно должны изучить этот материал, чтобы использовать его, он ничем не отличается от езды на велосипеде или выполнения математики. магия просто (тяжелая) работа и самоотверженность :-), я надеюсь, что это демонстрирует, как вы можете использовать несколько технологий относительно просто, чтобы создать что-то более динамично, что я считаю одной из причин появления javascript
вот demo
Вы уже подытожили свою проблему «мое полное отсутствие знаний js/jquery действительно мешает мне». Поэтому не запускайте, прежде чем вы сможете изучить некоторые [Javascript] (https: //developer.mozilla. org/en/JavaScript), затем перейдите на [jQuery] (http://www.jquery.com), а затем введите то, что вы узнали в контекст, следуя учебным пособиям, таким как [nettuts] (http://net.tutsplus.com/tutorials/javascript-ajax/exactly-how-to-create-a-custom-jquery-accordion/) –
Согласен с Tom-do & учить. – Lennart