我有一个由一些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"))
也会返回一个空白字符串。
答案 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);
});
});