JavaScript仅在IE 7中的类问题中传递动态值

时间:2012-09-14 09:51:04

标签: javascript jquery javascript-framework unobtrusive-javascript

我在IE7中遇到一个问题,只是将动态值传递给javascript。如下所示。这项工作适用于IE 7以外的所有浏览器。

$val =$id.$i;
echo "<a href='javascript:void(0);' id='network' class=$val value='$octet'>+".$octet.".0.0.0</a> <br />"; 

我在javasript中捕获此值,如下所示

$(".msg_body #network").click(function(){
    var network = $(this).attr('value');
    alert(network); // alert fails in IE 7

    var clsName = $(this).attr("class");
    alert(clsName); // alert fails in IE 7

完整的PHP代码

<?php 
                $octets = $this->Ip;
                $octetets = $this->octent1;
                $i= 1;
                $id='network';
                foreach($octetets as $octet){
                    $val =$id.$i;

                    echo "<a href='javascript:void(0);' id='network' class=$val value='$octet'>+".$octet.".0.0.0</a> <br />";
                    value='$octet'>+".$octet.".0.0.0</span> <br />";
                    $i++;

                }

            ?>

2 个答案:

答案 0 :(得分:1)

试试这个:

$(".msg_body").on('click', '#network', function(e){
    e.preventDefault();
    var network = $(this).attr('value');
    alert(network); // alert fails in IE 7

    var clsName = $(this).attr("class");
    alert(clsName); // a
});

答案 1 :(得分:0)

元素Id必须是唯一的,因此不要使用该属性,而是使用另一个名称:

改变你的php:

<?php 
            $octets = $this->Ip;
            $octetets = $this->octent1;
            $i= 1;
            $id='network';
            foreach($octetets as $octet){
                $val =$id.$i;

                echo "<a href='javascript:void(0);' name='network' class=$val value='$octet'>+".$octet.".0.0.0</a> <br />";
                value='$octet'>+".$octet.".0.0.0</span> <br />";
                $i++;

            }
        ?>

和你的jQuery:

$(".msg_body").on('click', '@network', function(e){
    e.preventDefault();
    var network = $(this).attr('value');
    alert(network); // alert fails in IE 7

    var clsName = $(this).attr("class");
    alert(clsName); // a
});