Javascript $(此)子项始终返回未定义的
我对Javascript $(此)子项始终返回未定义的,javascript,jquery,this,undefined,Javascript,Jquery,This,Undefined,我对innerHTML返回的undefined有问题。可能是因为html()和innerHTML之间的差异 我的JavaScript代码: var content2 = document.getElementById("content2"); var opis; $(function() { $('.blok').click(function(e) { opis = $(this).next('.opis'); if (!$('.popup:visible').length
innerHTML
返回的undefined
有问题。可能是因为html()
和innerHTML
之间的差异
我的JavaScript代码:
var content2 = document.getElementById("content2");
var opis;
$(function() {
$('.blok').click(function(e) {
opis = $(this).next('.opis');
if (!$('.popup:visible').length) {
content2.innerHTML= opis.html();
$('.popup').fadeIn();
}
e.preventDefault();
return false;
});
$('.popup .close, .popup .bg').click(function() {
$(this).parents('.popup').fadeOut();
});
})
我的HTML:
<body oncontextmenu="return false" onselectstart="return false" onselect="return false" oncopy="return false">
<div class="popup">
<div class="bg"></div>
<div class="container">
<div id="content2"> </div>
</div>
</div>
And example of "blok":
<div class="blok"> $$|DO| = |OC| = 5$$ <div class="opis">2</div>
</div>
以及“blok”的示例:
$$| DO |=| OC |=5$$2
为什么content2总是返回未定义的元素?类为blok的元素和类为opis的元素在DOM结构中不在同一级别上。所以
$(this).next('.opis')
无效<当元素位于同一DOM级别时,使用code>jquerynext()
。您需要以下表达式才能找到正确的元素<代码>opis实际上是块
$('.blok').click(function(e) {
opis = $(this).find('.opis');
例如:
或
示例:您的HTML在哪里?堆栈溢出被大量代码阻止。这里是:以及“blok”的示例:$$| DO |=| OC |=5$$2确保
var content2=document.getElementById(“content2”)当元素已经添加到DOM中时调用code>,但我需要这个()“opis”,因为我的html中有很多这样的结构:它更好,但它总是返回html中第一个“blok”的第一个面条“opis”的值。我不知道为什么。在你的问题中,只有一次出现带有class='opis'的div。如果有多个,则需要使用$。每个函数来获取所有元素。很乐意帮忙:)
$('.blok').click(function(e) {
$(this).children('.opis');