Jquery this.val在IE11中不起作用

时间:2015-02-20 12:53:57

标签: javascript jquery internet-explorer-8 internet-explorer-11

IE 8& IE11有很多差异可以任何人帮助我为什么会出现差异吗?

请参阅下面的图片链接,了解ie8& 11输出差异&整个代码:

http://postimg.org/image/e26ikiv1l/ (或)http://tinypic.com/r/2a4nxp3/8

注意:第一个警报仅适用于IE8,但第二个警报适用于IE8和IE11

参考java脚本代码:

$(document).ready(function(){ 
         $("a.explode").click(function(){
         var _rule = $(this).val(); 
         var _overrule =  $(this).attr('value'); 
         alert(_rule);
         alert(_overrule);
     });
});

3 个答案:

答案 0 :(得分:0)

不要使用anchor tag.use按钮。

<button value="xyz" class="button_class">ABC</button>

$(document).ready(function(){ 
     $(".button_class").click(function(){
     var _rule = $(this).html(); 
     var _overrule =  $(this).attr('value'); 
     alert(_rule);
     alert(_overrule);
 });
});

请参阅此demo

答案 1 :(得分:0)

There is no value attribute for anchor elements in HTML

在IE8中,浏览器将其视为expando-property,并允许您通过.value.val()读取的内容)访问它。

在IE9及更高版本中this non-standard behaviour is removed

.attr()方法直接从DOM读取属性,因此即使它是非标准的,也可以访问它。


您应该使用a data-value attribute和/或不使用锚点。

答案 2 :(得分:0)

试试这个:

$(document).ready(function(){ 
         $("a.explode").click(function(){
         var _rule = $(this).parent().text();          
         alert(_rule);         
     });
});