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
Вы хотите найти конкретный 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;
}
}
И посмотреть еще одно демо здесь
Скажем, вы ищете элемент (div) с id "childId" в родительском div с id "parentId". Код JQuery:
$("#parentId").find("#childId")
В качестве короткой формы вы можете даже сделать
$("#parentId #childId")
Поскольку вышеприведенный оператор найдет детей на любой глубине, если вы хотите прямой поиск детей (ребенок первого уровня)
$("#parentId > #childId")
Обычно идентификаторы уникальны на странице (или по крайней мере рекомендуется: :)). В таком случае вы можете
$("#childId")
и все равно получить дочерний элемент.
В зависимости от того, что применимо.
Вы можете вернуть элемент только в том случае, если он является дочерним элементом определенного элемента с помощью querySelector:
document.getElementById('evalBar').querySelector('#button_2');
/* возвращаемое значение: (html BUTTON) [объект HTMLButtonElement] */
атрибуты id должны быть уникальными, поэтому поиск элемента с идентификатором внутри другого элемента аналогичен поиску этого идентификатора непосредственно во всей DOM.
Вы можете использовать функцию 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>
id
должны быть уникальными, поэтому поиск поid
внутри другого div не имеет значения.