jQuery   发布时间:2022-04-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了javascript – 在Console.Log()中显示HTML而不是jQuery选择对象大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我将在Chrome开发人员控制台中输出真正的html,以便于调试.
所以我想做一个chrome扩展,即 Chrome Extension.

我将真正的console.log()复制到console.nativeLog();我将自己的自定义函数@L_489_4@到console.log();

这是代码

<div class="myDiv">
        <input type="text" id="inp1" title="title1" />
        <input type="text" id="inp2" title="title2" />
        <input type="text" id="inp3" title="title3" />
        <input type="text" id="inp4"  />
        <input type="text" id="test" value="">
    </div>
    <input type="button" id="btn1" value="Add" />
    <script type="text/javascript">
        console.nativeLog = console.log;
    var arr= new Array();
    for(var i=0;i<100;i++){
        arr[i] = i+','+i;
    }
    var fav = JSON.parse('[{"href":"/EMS-ILS/Modules/supplier_Profile/supplier_Profile.aspx?ModID=6&WebPagEID=38","text":"supplier Profile"},{"href":"/EMS-ILS/Modules/Customer_Profile/Customer_Profile.aspx?ModID=6&WebPagEID=57","text":"Customer Profile"},{"href":"/EMS-ILS/Modules/CosTing_Profile/CosTing_Profile.aspx?ModID=6&WebPagEID=50","text":"CosTing Profile"}]')
        console.log = function (val){
            if(typeof(val)=='String'){
                console.nativeLog(val);
                return;
            }
            try{
                for(var x=0;x<arguments.length;x++){
                    var arr = arguments[x];
                    try{
                        if(!arr.length)
                            console.nativeLog(arr);
                        else {
                            for(var i=0;i<arr.length;i++)
                                console.nativeLog(arr[i]);
                        }
                    }catch(err1){
                        console.nativeLog(arr);
                    }
                }
            }   
            catch(err2){
                console.nativeLog(val);
            }
        }           
        $(document).ready(function(){
            console.log('-------------');
            console.log($('input'));
            console.log('-------------');
            console.log($('#inp1'));
            console.log('-------------');
            console.log($('#badId'));
            console.log('-------------');   
                            console.log($('input'),$('#bad'),$('input:text'),fav,arr)


        });
    </script>

一切正常,但最后一个.如果jquery对象不包含任何结果,它仍将打印上下文jquery对象.

这是控制台中的输出.

怎么可以预防呢?有任何想法吗.谢谢.

解决方法

看看这个小提琴 http://jsfiddle.net/tppiotrowski/KYvDX/3/.这将在一个单独的行上打印每个参数,如果jQuery对象为空则打印[]:

console.nativeLog = console.log;
console.log = function(val) {
    var x = 0;
    for (x; x < arguments.length; x++) {
        var item = arguments[x];
        // check if we are dealing with jQuery object
        if (item instanceof jQuery) {
            // jQuery objects with length property are
            // the only ones we want to print
            if (item.length) {
                for (var i = 0; i < item.length; i++) {
                    console.nativeLog(item[i]);
                }
            } else {
                console.nativeLog('[]');
            }
        } else {
            console.nativeLog(item);
        }
    }
}

这是用于打印多个参数的实际console.log行为的更准确复制,例如. console.log(‘a’,’B’,2,[])在一行:http://jsfiddle.net/tppiotrowski/KYvDX/4/

console.nativeLog = console.log;
console.log = function() {
    var x = 0;
    var output = [];
    for (x; x < arguments.length; x++) {
        item = arguments[x];
        if (item instanceof jQuery) {
            if (item.length) {
                for (var i = 0; i < item.length; i++) {
                    output.push(item[i]);
                }
            } else {
                output.push('[]');
            }
        } else {
            output.push(item);
        }
    }
    console.nativeLog.apply(this,output);
}

大佬总结

以上是大佬教程为你收集整理的javascript – 在Console.Log()中显示HTML而不是jQuery选择对象全部内容,希望文章能够帮你解决javascript – 在Console.Log()中显示HTML而不是jQuery选择对象所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。