Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   .closest() не работает (https://javascript.ru/forum/dom-window/72255-closest-ne-rabotaet.html)

dvs 18.01.2018 11:18

.closest() не работает
 
<div class="container-items_client_contact_phone">
    <div class="item_client_contact_phone">
        <u phoneremove>
            <input type="hidden" id="clientcontactphone-0-0-id" name="ClientContactPhone[0][0][id]" value="137">
            <div class="client_field field-clientcontactphone-0-0-country">
                <input type="text" id="clientcontactphone-0-0-country" class="" name="ClientContactPhone[0][0][country]" value="+7" title="Код страны" country="" placeholder="+7">
            </div>
            <div class="client_field field-clientcontactphone-0-0-city">
                <input type="text" id="clientcontactphone-0-0-city" class="" name="ClientContactPhone[0][0][city]" value="201" title="Код города/оператора" city="" placeholder="919">
            </div>
            <div class="client_field field-clientcontactphone-0-0-number">
                <input type="text" id="clientcontactphone-0-0-number" class="" name="ClientContactPhone[0][0][number]" value="123-12-00" title="Номер" number="" placeholder="456-45-45">
            </div>
            <div class="client_field field-clientcontactphone-0-0-comment">
                <input type="text" id="clientcontactphone-0-0-comment" class="" name="ClientContactPhone[0][0][comment]" value="" maxlength="255" title="Комментарий" phone-comment="" placeholder="Комментарий">
            </div>
            <a class="remove-item_client_contact_phone" href="#" title="Удалить"><span del></span></a>          
        </u>
    </div>
</div>

function (attribute, value) {
    var obj = $(attribute).length;//obj = 1
    var objID = $(attribute).prop('id'); //objID = clientcontactphone-0-0-number
    var parent = $(attribute).closest('div.item_client_contact_phone'); //[object Object]
    var parentLength = $(attribute).closest('div.item_client_contact_phone').length; //0
    var inputCity = $(attribute).closest('div.item_client_contact_phone').find('input[city]');  //[object Object]
    var inputCityVal = $(attribute).closest('div.item_client_contact_phone').find('input[city]').val(); //undefined
//  return true;
}


Мне нужно получить значение соседнего input-а, я так понимаю .closest() не находит почему то элемент div.item_client_contact_phone?

рони 18.01.2018 11:45

dvs,
:-?

ksa 18.01.2018 11:46

Цитата:

Сообщение от dvs
objID = clientcontactphone-0-0-number
...
Мне нужно получить значение соседнего input-а

Это того, что с ИД=clientcontactphone-0-0-comment?

dvs 18.01.2018 11:51

да, точнее всех 4х

рони 18.01.2018 11:58

ksa,
твои телепатические способности впечатляют!!!

dvs 18.01.2018 12:40

Решил так:
$('#' + objID).closest('div.item_client_contact_phone').find('input[city]').val()

С первым вариантом конечно было бы красивее как здесь приводят https://github.com/yiisoft/yii2/issu...ment-162078705

ksa 18.01.2018 15:02

Цитата:

Сообщение от рони
твои телепатические способности впечатляют!

Фигли! :D


ksa 18.01.2018 15:03

Цитата:

Сообщение от dvs
точнее всех 4х

Соседним элементом считается только элемент "перед" или "после" некоего элемента. ;)


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