По сути, у вас была правильная функция, но вам нужно использовать .eq (index), чтобы фактически воздействовать на этот конкретный индекс в функции foreach. Это похоже на доступ к индексам в массивах, таких как randomArray (0) => 1.
$('div').each(function(index) {
var x = $(this).css('background-color');
$("div p").eq(index).text(index+x);
console.log(index+x);
});
.red {
background-color:red;
}
.cyan {
background-color:cyan;
}
.green {
background-color:green;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="red"><p></p></div>
<div class="cyan"><p></p></div>
<div class="green"><p></p></div>
contentWindow
iframe
window
объект. Вы хотите iframe
document
вместо этого:
$(document.getElementById('iframe_id').contentWindow.document).keydown(function() {
// my func
});
Обратите внимание, что я не уверен, как jQuery реагирует на элементы из других окон/кадров.
Функция $ заменяет потребность в document.getElementById
$('iframe_id').contentDocument.keydown(function() {
// logic
});
Просто помните: насколько я понимаю, это никогда не сработает, если содержимое iframe является междоменным. В конечном итоге вы получите ошибки прав доступа: Отказано в разрешении для http: // ... , чтобы получить свойство HTMLDocument.nodeType из http: // ... . Браузеры ограничивают права родительского дочернего домена одним и тем же доменом.