我目前有以下代码:
$("body").on("click", ".firstClass, .secondClass", function() {
if ($(this).prop("class") == "firstClass") {
//Something
} else if ($(this).prop("class") == "secondClass") {
console.log($(this).prop("class"));
var variable = $(this).val();
console.log(variable);
}
});
第一个console.log()
会返回我期望的内容:secondClass
但第二个返回null
。我想这与委托的侦听器事件有关,但是我无法理解的是为什么$(this)
在第一个实例中被正确引用,而在第二个实例中没有被引用。
我希望在这两种情况下都能获得成功的回报,但事实显然并非如此。为什么呢?
HTML如下:
<section>
<h3>Heading</h3>
<div>
<div>
<!-- .firstClass elements are dynamically created here within dynamically created div -->
<div>
<span class="firstClass">Some value</span>
<span class="firstClass">Another value</span>
...
</div>
</div>
</div>
<section>
<h4>Heading</h4>
<div>
<!-- .secondClass elements are dynamically created here -->
<span class="secondClass">Some value</span>
<span class="secondClass">Another value</span>
...
</div>
</section>
</section>
答案 0 :(得分:0)
您尝试获取的不是“值”,因为span
没有值(输入有值),这是跨度的HTML内容。
使用
var variable = $(this).html();
console.log(variable);
或
var variable = $(this).text();
console.log(variable);