var aid=window.document.selectSingleNode("//div[@id='pageDivTop' and @class='pages']/a[last()-1]") ? window.document.selectSingleNode("//div[@id='pageDivTop' and @class='pages']/a[last()-1]").href : document.location.href;
我不想把window.document.selectSingleNode("//div[@id='pageDivTop' and @class='pages']/a[last()-1]")这句写两次...或者用if...else也很罗嗦还是要写两次...
理想效果是改成var aid=window.document.selectSingleNode("//div[@id='pageDivTop' and @class='pages']/a[last()-1]").href || document.location.href;这样,,不过我试了不行...有没有好点的办法啊...普通点的就可以...

解决方案 »

  1.   

    目的是: 如果节点存在,就用节点的href属性赋值,如果不存在,就用页面的url赋值...
    不用判断语句或者三元表达式的话,当不存在那个节点的时候,脚本要获取节点的href属性会出错,影响到脚本中其他模块的正常运行...所以一定不能让他报错...但是还要写的简单点...我总觉得像我这么写太废话了...很纠结...
      

  2.   

    var anode=window.document.selectSingleNode("//div[@id='pageDivTop' and @class='pages']/a[last()-1]");
    var aid=anode?anode.href:document.location.href;
      

  3.   

    看来只能这样了...那就这样吧...
    再精简掉一个变量,,删个回车假装是一句算了...-__-
    var aid=window.document.selectSingleNode("//div[@id='pageDivTop' and @class='pages']/a[last()-1]"); aid=aid?aid.href:document.location.href;
      

  4.   

    var aid=(aid=window.document.selectSingleNode("//div[@id='pageDivTop' and @class='pages']/a[last()-1]"))?aid.href:document.localhost.href;
      

  5.   

    @KK3K2005
    哥...这个写法太符合我的理想了...就是在opera上实现不了...脚本返回不了aid的值...-___-!!
    不过还是谢谢你...我很喜欢这个思路...