document.getElementById как функция для определенного div

0

document.getElementById будет искать весь документ и возвращать результат, но здесь я хочу использовать ту же функцию для определенного div, что и для поиска определенного div для id и на основе того, что я хочу выполнить

вот мой код

if(document.getElementById('myId') ) // but it return the result from whole div 
{
  // Do something
}
else {
  // do something else
}

я хочу что-то вроде

if(document.getElementById('myId') in specific div) \\ how to do this
  • 6
    Атрибуты id должны быть уникальными, поэтому поиск по id внутри другого div не имеет значения.
  • 0
    Вы ищете дочерний div myId с заданным идентификатором?
Показать ещё 1 комментарий
Теги:

5 ответов

0
Лучший ответ

Вы хотите найти конкретный id для всех div

Я предполагаю, что вы знаете id который хотите найти

Вы можете именовать document.getElementsByTagName('div') как это

var myID = 4;

for (var i = 0; i < document.getElementsByTagName('div').length; i++){
    var res = document.getElementsByTagName('div')[i+1].id;
    if(res == myID){
        document.body.innerHTML = res;
        break;
    }
}

И это будет выглядеть как ваш HTML:

<div id="1"></div>
<div id="2"></div>
<div id="3"></div>
<div id="4"></div>
<div id="5"></div>
<div id="6"></div>

См. Демо здесь

Или я также предполагаю, что yor HTML- код выглядит примерно так:

<div id="myId">
    <div id="1"></div>
    <div id="2"></div>
    <div id="3"></div>
    <div id="4"></div>
    <div id="5"></div>
    <div id="6"></div>
</div>

Затем вы можете именовать document.getElementById('myId').getElementsByTagName('div'):

var myID = 3;

for (var i = 0; i < document.getElementById('myId').getElementsByTagName('div').length; i++){
    var res = document.getElementsByTagName('div')[i+1].id;
    if(res == myID){
        document.body.innerHTML = res;
        break;
    }
}

И посмотреть еще одно демо здесь

1

Скажем, вы ищете элемент (div) с id "childId" в родительском div с id "parentId". Код JQuery:

$("#parentId").find("#childId") 

В качестве короткой формы вы можете даже сделать

$("#parentId #childId") 

Поскольку вышеприведенный оператор найдет детей на любой глубине, если вы хотите прямой поиск детей (ребенок первого уровня)

$("#parentId > #childId") 

Обычно идентификаторы уникальны на странице (или по крайней мере рекомендуется: :)). В таком случае вы можете

$("#childId")  

и все равно получить дочерний элемент.

В зависимости от того, что применимо.

0

Вы можете вернуть элемент только в том случае, если он является дочерним элементом определенного элемента с помощью querySelector:

document.getElementById('evalBar').querySelector('#button_2');

/* возвращаемое значение: (html BUTTON) [объект HTMLButtonElement] */

0

атрибуты id должны быть уникальными, поэтому поиск элемента с идентификатором внутри другого элемента аналогичен поиску этого идентификатора непосредственно во всей DOM.

0

Вы можете использовать функцию querySelector. ВАЖНО: проверьте совместимость браузера! https://developer.mozilla.org/en-US/docs/Web/API/document.querySelector

Пример:

        <div id="foo">
            <div id="bar">
                this is foo-bar
            </div>
        </div>

        <script>
            var bar = document.querySelector("#foo #bar")

            alert(bar.innerHTML); // result: alert message "this is foo-bar"
        </script>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню