0

動的な値をjavascriptに渡すときにのみ、IE7で問題が発生します。以下に示すように。これは、IE7を除くすべてのブラウザーで機能します。

$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 に答える