Chrome扩展如何获取JS动态生成的网页元素

Chrome扩展如何获取JS动态生成的网页元素,第1张

如果想去给这些并不是由你控制动态生成出来的元素绑定事件应该是不可能的。

但是可以给顶层的document绑定事件来判断点击的是哪个元素。

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=10">

<meta >

$("#id em")text();

#id是你的上一个标签的id号,那如果上一个标签,我们就找为<em class="em"></em>,这样就可以用$("em")text();,如果一个网页,只有一个<em>标签,我们就直接用$("em")text()就可以了。

”>

粗糙运用原生js完成三级目录

    <!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title></title>

<style type="text/css">

{margin: 0;padding: 0;}

body{

font-size: 12px!important;

}

box{

width: 66px;

margin:66px auto;

}

/ 一级li样式 /

li{list-style: none;}

yijimulu{

width: 66px;

height: 24px;

display: flex;

justify-content: center;

align-items: center;

box-sizing: border-box;

background-color: orange;

color: #333333;

position: relative;

cursor: pointer;

}

/ 二级ul样式 /

erjiul{

position: absolute;

top: -1px;

left: 65px;

display: none;

}

erjili,sanjiLi{

width: 66px;

height: 24px;

display: flex;

justify-content: center;

align-items: center;

box-sizing: border-box;

background-color: orange;

color: #333333;

position: relative;

cursor: pointer;

}

sanjiul{

position: absolute;

top: -1px;

left: 65px;

display: none;

}

</style>

</head>

<body>

<div class="box"></div>

<script>

var obox = documentquerySelector('box')

function Message(box) {

thisbox = box

// 创建一级目录方法

thisCreatOne()

// 创建二级目录方法

thisCreatTwo()

// 创建三级目录

thisCreatThree()

}

// 创建一级目录

MessageprototypeCreatOne = function (){

// 创建一级ul

thisul = documentcreateElement('ul')

// 创建一级li

thisulinnerHTML = `

<li>一级目录</li><li>一级目录</li><li>一级目录</li><li>一级目录</li><li>一级目录</li>

`

// 添加一级ul到div内

thisboxappendChild(thisul)

// consolelog(thisul)

// 获取一级ul内所有li并起名

thisoli = thisulquerySelectorAll('li')

// 循环出一级ul内所有li并起名设置样式

for (let i = 0;i < thisolilength;i++) {

thisoli[i]className = 'yijimulu'

// 设置一级样式鼠标划入效果

thisoli[i]addEventListener('mouseenter',()=>{

// 清空一级目录鼠标移入效果

for(let i = 0;i < thisolilength;i++) {

thisoli[i]styleborder = 'none'

thisoli[i]stylecolor = '#333333'

thisbulname[i]styledisplay = 'none'

}

thisoli[i]styleborder = '1px solid red'

thisoli[i]stylecolor = 'white'

thisbulname[i]styledisplay = 'block'

},false)

// 设置一级目录鼠标移出效果

thisoli[i]addEventListener('mouseleave',()=>{

thisoli[i]styleborder = 'none'

thisoli[i]stylecolor = '#333333'

thisbulname[i]styledisplay = 'none'

},false)

}

}

// 创建三级目录

MessageprototypeCreatTwo = function () {

// thisoli是一级子li目录

// 创建二级目录ul

thisbul = documentcreateElement('ul')

// 添加到一级li里  >thisoli

for (let i = 0;i < thisolilength;i++) {

thisoli[i]innerHTML = '一级目录<ul></ul>'

}

// 获取所有二级ul

thisbulname = thisulquerySelectorAll('ul')

for (let i = 0;i<thisbulnamelength;i++){

// 给二级ul起名

thisbulname[i]className = 'erjiul'

// 创建二级li

thisbulname[i]innerHTML = `<li>二级目录</li><li>二级目录</li><li>二级目录</li><li>二级目录</li><li>二级目录</li>`

thisbli = thisbulname[i]querySelectorAll('li')

// consolelog(thisbli)

for (let i = 0;i<thisbulnamelength;i++) {

thisbli[i]className = 'erjili'

}

}

// 获取所有二级Ul下的li

// 先通过所有二级ul的类名获取到所有的二级ul

}

// 创建三级目录

MessageprototypeCreatThree = function () {

// 先获取到所有的二级li

thistwoli = thisulquerySelectorAll('erjili')

// consolelog(thistwoli)

// 创建三级<ul>

for (let i = 0;i<thistwolilength;i++) {

// consolelog(thistwoli)

thistwoli[i]addEventListener('mouseenter',()=>{

// consolelog(thistwoli[i])

for(let i = 0;i<thistwolilength;i++){

thistwoli[i]styleborder = 'none'

thistwoli[i]stylecolor = '#333333'

thisculclass[i]styledisplay = 'none'

}

thistwoli[i]styleborder = '1px solid red'

thistwoli[i]stylecolor = 'white'

thisculclass[i]styledisplay = 'block'

},false)

thistwoli[i]addEventListener('mouseleave',()=>{

thistwoli[i]styleborder = 'none'

thistwoli[i]stylecolor = '#333333'

thisculclass[i]styledisplay = 'none'

},false)

}

thiscul = documentcreateElement('ul')

for (let i = 0;i<thistwolilength;i++) {

thistwoli[i]innerHTML = '二级目录<ul></ul>'

thisculname = thistwoli[i]querySelector('ul')

thisculnameclassName = 'sanjiul'

thisculnameinnerHTML = `<li>三级目录</li><li>三级目录</li><li>三级目录</li><li>三级目录</li><li>三级目录</li>`

// 获取所有三级Li

thisculclass = thisulquerySelectorAll('sanjiul')

for (let i = 0;i<thisculclasslength;i++) {

thiscli = thisculclass[i]querySelectorAll('li')

for (let  i = 0;i<thisclilength;i++){

// thiscli = thisculclass[i]querySelectorAll('li')

thiscli[i]className = 'sanjiLi'

}

}

thisthreeli = thisulquerySelectorAll('sanjiLi')

consolelog(thisthreeli)

for (let i = 0;i <thisthreelilength;i++) {

thisthreeli[i]addEventListener('mouseenter',()=>{

for (let i = 0;i<thisthreelilength;i++) {

thisthreeli[i]styleborder = 'none'

thisthreeli[i]stylecolor = '#333'

}

thisthreeli[i]styleborder = '1px solid red'

thisthreeli[i]stylecolor = 'white'

},false)

}

}

}

var msg = new Message(obox)

</script>

</body>

</html>

$(this)parent()find("i[isShow='fou']")

该元素就是属性isshow为fou的i元素,注意引号。

jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库( 或JavaScript框架)。jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。

它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档 *** 作、事件处理、动画设计和Ajax交互。

jQuery的模块可以分为:入口模块、底层支持模块和功能模块。其核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口。

具有高效灵活的css选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。jQuery兼容各种主流浏览器,如IE 60+、FF 15+、Safari 20+、Opera 90+等。

2楼的 没改根本不对。

3楼太麻烦。没耐心看

——————————————————————————

要分页很简单你先研究下这个function: parse_url()

php 帮助文件里有具体用法。找不到可以 联系我 哈哈!~~

++++++++++++++++++++++++++++++++++++++++++

<php

include("connphp");//连接数据库

$pagesize=5;//每页显示的条数:

$url=$_SERVER["REQUEST_URI"];//获取本页地址-网址

$url=parse_url($url);// 解析网址--得到的是一数组

$url=$url[path];//得到解析网址的 具体信息

$numq=mysql_query("SELECT FROM `say`");

$num = mysql_num_rows($numq);//获取总条数

if($_GET[page]){

$pageval=$_GET[page];

$page=($pageval-1)$pagesize;

$page=',';///懂了select 语句中limit的用法:SELECT FROM table …… limit 10 , 20----从11条到20条。这个你懂的吧^^

}

if($num > $pagesize){

if($pageval<=1)$pageval=1;///第0页 时出现错误

echo "共 $num 条"

" <a href=$urlpage="($pageval-1)">上一页</a> <a href=$urlpage="($pageval+1)">下一页</a>";//这是带连接的 上一页 下一页。。。 你该懂吧

}

echo $SQL="SELECT FROM `test` limit $page $pagesize ";

$query=mysql_query($SQL);

while($row=mysql_fetch_array($query)){////while 循环 这个是必须的

echo "<hr><b>"$row[name]" | "$row[id];

}

>

-----就这么简单

DataView dv = FStudioTradeBLLClassBLLQuery()Tables[0]DefaultView;

dvRowFilter = "Code='0001'"; //

这个设置无效

dvRowFilter = "Len(Code)=4";//获取全部一级分类

foreach (DataRowView drv in dv){string code = drv["Code"]ToString();

string classname = drv["ClassName"]ToString();

ResponseWrite(classname + "/");

//获取对应的二级分类,注意:这里同样设置的是dv变量

dvRowFilter="Code Like '" + code +"' And Len(Code)=" + (codeLength + 4);

foreach (DataRowView drv2 in dv){string code1 = drv2["Code"]ToString();

string classname1 = drv2["ClassName"]ToString();

ResponseWrite("--" + classname1 + "/");}}//============如下则得不到期望的结果(将foreach改成for)

for (int i = 0; i < dvCount;i++ ){string code = dv[i]["Code"]ToString();

string classname = dv[i]["ClassName"]ToString();

ResponseWrite(classname + "/");

//DataView dv2=new DataView(dvTable);

//使用新数据视图来避免冲突,将下面的dv改成dv2就可以得到预期结果

针对某个DataView设置了多次RowFilter,那么最后一次的设置将生效, 设置RowFilter后使用foreach处理dataview,其实处理的是数据视图的副本,循环内对DataView的RowFilter再次设置不影响foreach处理的集合副本 当然也可以使用DataView tDv=new DataView(DataTable);来生成一个新的视图来避免冲突问题--如果使用这种方式那么就上面情况,内存中将有两个dataView(对应一个datatable)如果再使用foreach进行集合便历,那么明显要多出一个dataview内存需求

以上就是关于Chrome扩展如何获取JS动态生成的网页元素全部的内容,包括:Chrome扩展如何获取JS动态生成的网页元素、php 怎么控制输出标题的其中一个、asp.net<em>标签里的值js怎么获取等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9269910.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存