大佬们,怎么获取点击对应的content的内容呢,用for循环会出现长度的问题,删除会报错怎么用this获取呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大佬们,怎么获取点击对应的content的内容呢,用for循环会出现长度的问题,删除会报错怎么用this获取呢?相关的知识,希望对你有一定的参考价值。

<html>

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>删除自己的div</title>
<style>
.wrap
width: 400px;
height: 400px;
background-color: aqua;


.user-info
width: 390px;
height: 120px;
border: 1px solid red;

</style>
</head>

<body>
<div class="wrap">
<div class="del">
<div class="user-info">
<div class="content">
我是1
</div>
</div>
<div class="user-info">
<div class="content">
我是2
</div>
</div>
<div class="user-info">
<div class="content">
我是3
</div>
</div>
</div>
</div>
<script>
var user = document.getElementsByClassName("user-info");
for (let i = 0; i < user.length; i++)
user[i].onclick = function ()
var content = document.getElementsByClassName("content").innerHTML;
console.log(this.content);
// var flag2 = confirm("您确定要删除" + this.content + "吗?")
if (confirm("您确定要删除" + this.innerHTML + "吗?"))
this.parentNode.removeChild(this);




</script>
</body>

</html>

var user = document.getElementsByClassName("user-info");
for (let i = 0; i < user.length; i++)
user[i].onclick = function ()
if (confirm("您确定要删除" + this.innerText + "吗?"))
this.parentNode.removeChild(this);



附注:
if (confirm("您确定要删除" + this.innerText + "吗?"))
可改为
if (confirm("您确定要删除" + this.children[0].innerHTML + "吗?"))
或者
if (confirm("您确定要删除" + this.getElementsByTagName("div")[0].innerHTML + "吗?"))
或者
if (confirm("您确定要删除" + this.getElementsByClassName("content")[0].innerHTML + "吗?")) 追问

大佬,为什么一直说我的innerHTML一直在报错说未定义。
if (confirm("您确定要删除" +this.getElementsByClassName("studentNumber")[0].innerHTML+ "吗?"))
这里的innerHTML。能解答一下吗?万分感激。

追答

说明不存在studentNumber这个class

参考技术A //[...itera]是javascript展开语法
//建议使用let而不是var,let指代更明确
let user = [...document.getElementsByClassName("user-info")];

for (let curr of user)
//这边建议您使用addEventListener比较优雅~
curr.onclick=function (event)
//let tar=curr;//直接这样也可以,但是希望你知道event.target
let tar=event.target;//获取触发事件的家伙
let content = tar.innerText;//我猜测你要的是innerText而不是innerHTML?
console.log(content);//不要加this了,this指代的可能是window或者其他意外的东西
if (confirm("您确定要删除" + content + "吗?"))
tar.parentNode.removeChild(tar);


本回答被提问者采纳
参考技术B js部分需要更正一下
<script>
var user = document.getElementsByClassName("user-info");
for (let i = 0; i < user.length; i++)
user[i].onclick = function ()
// 获取点击对应的content的内容
var content = this.getElementsByClassName('content')[0].innerHTML
// 为获取后的内容去除空格 (为了美观,我帮你去除换行及空格了,不过不喜欢,可以再注释掉)
content = content.trim()
if (confirm("您确定要删除 "+content+" 吗?"))
this.parentNode.removeChild(this);



</script>追问

大佬,为什么一直说我的innerHTML一直在报错说未定义。
if (confirm("您确定要删除" +this.getElementsByClassName("studentNumber")[0].innerHTML+ "吗?"))
这里的innerHTML。能解答一下吗?万分感激。

追答

getElementsByClassName() 方法返回所有指定类名的元素集合,studentNumber这个类名的元素是没有的,所以它的innerHTML就是undefined,你换成content就可以啦

高手们,请问VBA里面怎么获取WORD文档里的目录所对应的内容呢?

现在目录可以获取到了,但是对应的内容不知怎么获取?
帮忙帮忙,谢谢谢。

你能获取到目录,那么对于每个Paragraph对象,可以访问.Range.Hyperlinks集合,对于第一个Hyperlink对象,可以执行它的Follow方法,这样就能跳转到对应的章节,然后在这个基础上读取文档内容就可以了。我不知道你说的“对应的内容”是指什么意思,估计你要做一些遍历和判断。追问

对应的内容我已经获取到了;
但是又来一个新问题,那就是如果内容中含有表格或图片的话,Range对象只能读取 纯文本,而不能读取表格和图片,不知道这该怎么处理?
我的意思就是想,比方说一个WORD文档,里面有文字,有图片,有表格,我想一次性全部给读取出来,当然人有会说图片不会显示,这个我知道,因为图片路径不对,这不是关键,关键是怎么都读取出来,或者说在表格或图片的地方有个标记也好。

追答

对表格和图片的遍历,需要访问Document对象下的相应集合,我不记得是否叫tables和shapes等,你可以查下Word的对象模型。

参考技术A 你好 我想请教一下,目录您是通过那个接口获得的,谢谢,我找了好长时间没找到

以上是关于大佬们,怎么获取点击对应的content的内容呢,用for循环会出现长度的问题,删除会报错怎么用this获取呢?的主要内容,如果未能解决你的问题,请参考以下文章

大数据+云:Kylin/Spark/Clickhouse/Hudi 的大佬们怎么看?

各位大佬们,安卓v2rayNG出现这个情况该怎么解决啊?

powerbi文本框怎么打开

小程序之点击跳转到对应内容

互联网大佬们聊blockchain:区块链,Yes;发币,No!

科技大佬们对人工智能的看法