JQuery, изменяющий фон родительского отделения

Это создаст список уникальных объектов с обновленным количеством

List<MyObject> list = new ArrayList<>();
list.add(new MyObject("AAA", 1, 0));
list.add(new MyObject("CCC", 3, 0));
list.add(new MyObject("AAA", 1, 0));
list.add(new MyObject("BBB", 2, 0));
list.add(new MyObject("AAA", 1, 0));

Map<Integer, MyObject> temp = new HashMap<>();
list.forEach( x -> {
    MyObject o = temp.get(x.id);
   if (o == null) {
        temp.put(x.id, x);
        x.quantity = 1;
    } else {
        o.quantity++;
    }
});
List<MyObject> result = new ArrayList<>(temp.values());

Обратите внимание, что этот ответ для примера кода MyObject в вопросе. При добавлении нового объекта на карту temp я установил количество на 1, поскольку именно так он обрабатывается в вопросе, но можно утверждать, что необходима лучшая логика.

12
задан Priyanga 18 October 2019 в 07:57
поделиться

4 ответа

Я думаю с помощью

$(this).parents('div.inputBoxImage').css(...)

вместо $(this.parentNode) должен работать.

См., что jQuery пересекает документацию

Править: обновленный после ответа Prody (измененный родитель к родителям)

22
ответ дан 2 December 2019 в 06:28
поделиться

Я не на 100% уверен, но я думаю, в чем Вы нуждаетесь, то, что ответ Phill Sacre предлагает кроме использования parents (заметьте последний s),

Из jQuery API:

родитель (Представляют expr в виде строки) возвращается, jQuery Получают ряд элементов, содержащих уникальных родителей подобранного набора элементов.

родители (Представляют expr в виде строки) возвращаются, jQuery Получают ряд элементов, содержащих уникальных предков подобранного набора элементов (за исключением корневого элемента).

2
ответ дан 2 December 2019 в 06:28
поделиться

Теперь с тех пор в HTML только идентификаторы уникальны, можно сослаться на отделение непосредственно, не делая никакого обхода:

<div class="inputboximage" id="inputboximage">
    <div class="value2">
    <input name='address1'      value='5 The Laurels' type="text" size="26" maxlength="40" />
    <br />

    </div>
</div>

<script>
  $(document).ready(function(){

    $("input").focus(function () {
         $('#inputboximage').css('background-image', 'url(images/curvedinputblue.gif)');
    });


  });
</script>

Обратите внимание, что, в то время как возможно отфильтровать родительские элементы для классификации CSS, с помощью поведения жука-навозника классов стиля, Плохой ТМ Идеи, и необходимо постараться не делать это. Но если Вы являетесь действительно отчаянными, можно дать ему попытку:

$("input").focus(function () {
         $(this).parents('div.inputboximage').css('background-image', 'url(images/curvedinputblue.gif)');
    });
0
ответ дан 2 December 2019 в 06:28
поделиться

.parent () .css (изменяется здесь),

0
ответ дан 2 December 2019 в 06:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: