$(this).val()返回错误值IE8

时间:2012-07-06 07:32:03

标签: javascript jquery html internet-explorer-8

我有一个由一些javascript代码动态生成的琐事页面。它适用于大多数浏览器(Chrome,Safari,Firefox,Opera,IE9),但IE8存在一个奇怪的问题。当我将$(this).val()作为按钮单击事件处理程序的一部分调用时,即使单击的按钮具有值,我也会得到一个空字符串作为响应。

相关JavaScript:

$(document).ready(function() {
    $(document).on("click", ".btn", function() {
        if(panel % numPanels === 1)
            {category = $(this).val();}
        nextPanel(prop);
    });
});

相关HTML:

<div id="buttons">
<button type="button" class="btn" value="One">Group One</button>
<button type="button" class="btn" value="Two">Group Two</button>
<button type="button" class="btn" value="Three">Group Three</button>
</div>

知道发生了什么事吗?

编辑:我正在使用jQuery 1.7.2,使用console.log($(this).attr("value"))console.log($(this).prop("value"))也会返回一个空白字符串。

3 个答案:

答案 0 :(得分:1)

您可以尝试$(this).attr("value")

您可以使用$(this).prop("value")

.prop()

需要jQuery 1.6+版本

答案 1 :(得分:1)

&lt; button&gt;中的错误如果你打算使用javascript,那么我的消息是你使用html -data属性:

<div id="buttons">
    <button type="button" class="btn" data-value="One">Group One</button>
    <button type="button" class="btn" data-value="Two">Group Two</button>
    <button type="button" class="btn" data-value="Three">Group Three</button>
</div>

并使用jquery代码:

$(document).ready(function() {
    $(document).on("click", ".btn", function() {
        if(panel % numPanels === 1) {
            category = $(this).data("value");
        }
        nextPanel(prop);
    });
});

答案 2 :(得分:0)

尝试使用.attr

获取值

编辑:添加完整代码

$(document).ready(function() {     
$(document).on("click", ".btn", function() {
     if(panel % numPanels === 1)
// retrieve using attr
         {category = $(this).attr("value");}
     nextPanel(prop);
 }); 
});