2015-03-09 3 views
0

Существует два div с классами .div1 и .div2. Каждый из них содержит один и тот же код - те же элементы с одинаковыми именами классов. Если мне нужно установить/получить значение элемента внутри одного из div, как я могу обратиться к этим элементам? Стараюсь следующее:jquery selector: дочерние элементы одного класса внутри divs разных классов

var hostPopup = "hostdiv" + selectedPopup + " "; // where selectedPopup = "1" or "2" 
$(hostPopup + '.testColor').css('background-color', rgba); 
$(hostPopup + '.testColorText').css({'color': rgba, '-webkit-filter': 'invert(100%)', 'filter': 'invert(100%)'}); 

Это не работает. Но если я использую hostPopup указать хост DIV только для одной операции - которая работает на первой линии здесь:

$(hostPopup + '.testColor').css('background-color', rgba); 
$('.testColorText').css({'color': rgba, '-webkit-filter': 'invert(100%)', 'filter': 'invert(100%)'}); 

Works!

Вот пример куска моего HTML:.

<div class="hostdiv1" style="padding: 0;"> <!-- hostdiv2 has exactly the same code in it --> 
    <div class="NamesDiv nameTypesDiv" style="background-color: dimgray;"> 
    <div class="namesClass"> 
     <b>1.</b> Add names 
    </div> 
    <div class="testColor" style="background-color: rgb(124,124,124); color: white;"><p class="testColorText">Test</p></div> 
    <div class="rangeDiv" style="height: 120px;"> 
    <div class="rangeBars"><input type="range" class="rangeR" min="0" max="100" value="50" tabindex="0"></input> 
    <output for="rangeR" class="outR outRange">50</output></div> 

Итак, почему $ ("nodeDiv1class .itsinnerelementclass") 'действие' ... не хочет работать с itsinnerelementclass элементом, находится где-то внутри элемента с классом nodeDiv1class?

+1

Символ периода отсутствует в вашем первом классе селектора ('" div "+ selectedPopup +" "'). –

ответ

1

Думаю, вам нужна точка в начале hostPopup, так что jQuery знает, что это класс.

+1

Да, спасибо! Он работает сейчас. Я был невнимателен. – CodeGust