0

只有在将动态值传递给 javascript 时,我才在 IE7 中遇到问题。如下所示。这适用于除 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++;

                }

            ?>
4

2 回答 2

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
});
于 2012-09-14T09:53:43.390 回答
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
});
于 2012-09-14T10:05:38.547 回答