Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将元素值更改为其他符号_Javascript - Fatal编程技术网

Javascript 将元素值更改为其他符号

Javascript 将元素值更改为其他符号,javascript,Javascript,大家好, 我试图通过使用纯js而不使用任何框架来更改主体中每个元素的值 例如,您打开console insert js,它会将body的每个元素中的所有值更改为其他符号 因此,基本上我可以得到所有的可见字在网站上的用户没有任何html标记 比如: <li>This is text</li> t->p h->s i->e s->l e->o x->z 这是文本 t->p h->s i->e s->l e->o x->z 将是 &l

大家好,

我试图通过使用纯js而不使用任何框架来更改主体中每个元素的值

例如,您打开console insert js,它会将body的每个元素中的所有值更改为其他符号

因此,基本上我可以得到所有的可见字在网站上的用户没有任何html标记

比如:

<li>This is text</li> 

t->p
h->s
i->e
s->l
e->o
x->z
  • 这是文本
  • t->p h->s i->e s->l e->o x->z
    将是

    <li>Psel el pozp</li>
    
  • Psel-el-pozp
  • 所以,不知道如何循环每个元素的值。 这就是我试过的

    var elems = document.body.getElementsByTagName("*");
    
    for (i = 0; i < elems.length; i += 1) {
       if (elems[i].innerHTML.indexOf('<script') != -1){
           console.log(elems[i]);
       } else {
           continue;
       }
    }
    
    function validate(element){
        if(element.indexOf('<div') == -1){
            return false;
        } else if(element.indexOf('<script') == -1){
            return false;
        } else {
            return true;
        }
    }
    
    var elems=document.body.getElementsByTagName(“*”);
    对于(i=0;i如果(elems[i].innerHTML.indexOf(“首先,在
    for
    循环中,将调用添加到
    validate
    。然后在
    validate
    中,添加文本替换:

    var elems = document.body.getElementsByTagName("*");
    
    for (i = 0; i < elems.length; i += 1) {
       if (elems[i].innerHTML.indexOf('<script') != -1){
           console.log(elems[i]);
       } else {
           validate(elems[i]);
       }
    }
    
    function validate(element){
        if(element.indexOf('<div') == -1){
            return false;
        } else if(element.indexOf('<script') == -1){
            return false;
        } else {
            element.innerText = element.innerText.replace("t", "p"); //Add the others as well
        }
    }
    
    var elems=document.body.getElementsByTagName(“*”);
    对于(i=0;i
    ✱大写字母和语法更正是我的

    只需使用
    .textContent
    .innerText
    属性,就可以轻松地从HTML中提取文本。结果之间存在一些显著差异,标准之间存在细微的不一致,请参阅上面的链接和下面的演示


    演示 运行演示并单击
    结果
    链接或滚动至最底部

    var content=document.getElementById('content');
    var tC=document.getElementById('textContent');
    tC.textContent=content.textContent;
    var iT=document.getElementById('innerText');
    iT.innerText=content.innerText;
    
    html{
    滚动行为:平滑
    }
    家
    
    


    结果
    textContent

    innerText

    您发布的代码没有调用
    验证
    函数,因此我将完全忽略这一点。您声明的目标确实不是非常明确,但是我将尝试使用类似于您所拥有的内容循环一些元素

    对于我的代码,我向所有未被跳过的内容添加了一个类;在这里,您将进行处理;调用函数等,即
    el.classList.add(“显示处理器”);

    注意:
    skipList
    an函数
    filterBySkipCheck
    是这里的关键部分

    功能剂量仪(el){
    const showplace=document.getElementById('actions-display')
    .getElementsByClassName('showme')[0];
    showplace.innerText=showplace.innerText+el.innerText;
    const textContentOutput=document.getElementById('textContentOutput');
    const innerTextOutput=document.getElementById('innerTextOutput');
    textContentOutput.innerHTML=el.textContent;
    innerTextOutput.innerHTML=el.innerText;
    }
    函数hasParentWithMatchingSelector(目标、选择器){
    return[…document.queryselectoral(选择器)].some(el=>
    el!==目标和el.contains(目标)
    );
    }
    函数hasMatchingSelector(目标、选择器){
    return[…document.queryselectoral(选择器)].some(el=>
    el==目标
    );
    }
    函数hasClass(元素,类名){
    return元素.classList.contains(classname);;
    }
    函数hasSelfOrParentWithClass(元素,类名){
    if(element.classList.contains(classname))返回true;
    返回element.parentNode&&hasSelfOrParentWithClass(element.parentNode,classname);
    }
    函数hasParentWithClass(元素,类名){
    返回hasParentWithMatchingSelector(元素“..”+类名);
    }
    函数过滤器BySkipCheck(el、索引、myarr、skipList){
    设Isskiped=false;
    //处理跳过列表中的每个项目
    skipList.forEach(函数(跳过){
    如果(!isSkipped&&skip.matchType==='tag'){
    IsSkiped=el.tagName===skip.match;
    }
    如果(!isSkipped&&skip.matchType==='skipclass'){
    ISSKIPED=hasClass(el,skip.match);
    }
    如果(!isSkipped&&skip.matchType==='selector'){
    IsSkiped=hasMatchingSelector(el,skip.match);
    }
    如果(!isSkipped&&skip.matchType==='parentselector'){
    IsSkiped=hasParentWithMatchingSelector(el,skip.match);
    }
    如果(!isSkipped&&skip.matchType==='element'){
    ISSKIPED=el==skip.match;
    }
    });
    返回信号被切断;
    }
    函数处理(元素、skipL){
    //筛选要跳过的内容
    常量filteredElements=[…元素].filter(函数(el、index、myarr){
    返回过滤器BySkipCheck(el、索引、myarr、skipL);
    });
    //这回答了一个问题,即如何处理/循环所有数据,以及如何进行过滤
    for(设i=0;i
    。显示处理器{
    边框:实心1px红色;
    }
    .节目主持人{
    边框:实心1px绿色;
    }
    
    var myfriend=“冥王星”;
    冷杉