委托事件和$(this).val()

时间:2014-02-16 18:13:02

标签: jquery console html

我目前有以下代码:

$("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>

1 个答案:

答案 0 :(得分:0)

您尝试获取的不是“值”,因为span没有值(输入有值),这是跨度的HTML内容。

使用

var variable = $(this).html();
console.log(variable);

var variable = $(this).text();
console.log(variable);