jquery 的append()方法里面变量参数带有“()”怎么办。会报脚本错误!示例:
$("#ul").append("<li onclick='selectedBrand(\""+brandid+"\",\""+brandname+"\",\""+logo+"\",\""+brandinfo+"\");'>")//如上代码 4个变量中,比如我的是brandinfo中带有"()"的字符串。会使游览器报缺少括号的脚本错误。
有什么比较好的解决办法么?

解决方案 »

  1.   

    肯定是你拼接出错了,试试
    $("#ul").append("<li onclick=\"selectedBrand('"+brandid+"','"+brandname+"','"+logo+"','"+brandinfo+"');\">")
      

  2.   


    错误是这样的,只有在变量中含有()时报错,不是所有的数据都报错,所以我觉得是写法问题,拼接应该……而且这样写 实际拼接出来的 结果是 selectedBrand("123","123","123","123()123");
    这样会出错吗
      

  3.   

    拼接的方法我不太赞成,比较一下,是直接在元素后面跟上attr()这样解析的快 还是去解析一段乱七八糟的字符串来得快,结果显而易见
      

  4.   

    给你一个小例子 直接运行: <html>
     <head>
        <script type="text/javascript"  src="jquery-1.4.2.min.js"></script>
       <script type="text/javascript">
       function  clickMe(){
        var str="093()33999";
       $("#buttonId").after('<input type="button" onclick="clickMeTwo(\''+str+'\')" value="再点我"/>');
      }
      function clickMeTwo(){
      alert(arguments[0])
      }
      </script>
    </head>
     <body>   <table border="1" id="tableA">
      <tr>
       <input id="buttonId" type="button" value="点我" onclick="clickMe()"/>
      </tr>
     
      </table>
     
      </body>
    </html>
      

  5.   

    我用我自己1楼的代码,没发现任何问题
    <div id="append"></div>
    <script  type="text/javascript">
    function selectedBrand2(a,b,c,d){
        alert(a+":"+b+":"+c+":"+d)
    }
    var brandid='1111';
        var brandname='1111';
        var logo='111()1';
        var brandinfo='1111';
        $("#append").append("<ul><li onclick=\"selectedBrand2('"+brandid+"','"+brandname+"','"+logo+"','"+brandinfo+"');\">asdfasdf</li></ul>");
        alert($("#append").html())
    </script>
      

  6.   

    经过测试,“var brandname="Kommounalnoje proizvodstvennoye ounitarnoe predpriyatie &quot;Vitebsky konditersky kombinat &quot;Vit&#039;ba&quot; "”这条数据会报错
      

  7.   

    那你就这么写,你参数就是玩出花来都没关系:
    <div id="append"></div>
    <script  type="text/javascript">
    function selectedBrand2(a,b,c,d){
        alert(a+":"+b+":"+c+":"+d)
    }
    var brandid='1111';
        var brandname='Kommounalnoje proizvodstvennoye ounitarnoe predpriyatie &quot;Vitebsky konditersky kombinat &quot;Vit&#039;ba&quot;';
        var logo='111()1';
        var brandinfo='1111';
        $("<ul><li>中华人民共和国中华人民共和国</li></ul>")//先定义元素对象
        .appendTo($("#append"))//追加内容
        .find("li")//找到li
        .click(function(){selectedBrand2(brandid,brandname,logo,brandinfo)})//绑定数据
    </script>
      

  8.   

    做个完整未例给你看吧,否则你嵌入自己程序又要说不行了。这年头,赚分真的好不容易
    <div id="append"></div>
    <script  type="text/javascript">
    function selectedBrand2(a,b,c,d){
        alert(a+":"+b+":"+c+":"+d)
    }
    var ul=$("<ul></ul>");
        for(i=0;i<10;i++){
            (function(i){
                var brandid=i+1;
                var brandname=i+2;
                var logo=i+3;
                var brandinfo=i+4;
                ul.append("<li>第"+parseInt(i+1)+"条内容</li>");
                ul.find('li').eq(i).click(function(){selectedBrand2(brandid,brandname,logo,brandinfo)})
            })(i)
        }
        $("#append").append(ul);
    </script>