parent-child 相关问题

实体之间的关系,其中一个扮演主要角色,另一个扮演次要角色。也是一种继承关系范式。


Javascript 选择删除元素的标记名并将内容附加到 ParentNode

我有这个: 一个 易捷航空飞行员 已经告诉游客,飞往 罗德 是一个“可怕的 我有这个: <p> An <span class="item1">easyJet pilot</span> has told tourists that flying to <span class="item2">Rhodes</span> is a “terrible idea” just minutes before taking off, it has been reported, as <span class="item3">wildfires spread across Greece</span> journalist Gwyn Loader, who was on the flight to the island to report for BBC Wales Welsh-language news programme Newyddion, said <span class="item4">eight passengers</span> subsequently decided to disembark, including a young boy who was in tears. </p> 如果我选择一个跨度或跨度的一部分,我想删除跨度标记名并将所选文本附加到 parentNode 例如,在 中,如果我选择“across”,我希望将其从跨度中删除并附加到 parentNodep。因此,它将创建 2 个跨度,因为“野火蔓延”将是一个跨度,而“希腊”将是一个新的跨度。 我可以用这个来做到这一点: const element = document.querySelector('span'); element.outerHTML = element.innerHTML 但这会一一删除跨度元素,而不是我可以使用鼠标选择的元素。 所以我尝试创建一个函数: function cleanup() { const selObj = window.getSelection(); const selRange = selObj.getRangeAt(0); selRange.outerHTML = selRange.innerHTML } 但是它不起作用,尽管我没有错误。问题出在选择上,但我不知道如何解决它。 我错过了什么? 非常感谢您的帮助, 您需要为跨度添加事件监听器,然后替换如下内容。 document.querySelectorAll('span').forEach(sp => { sp.addEventListener('click', e => { e.target.outerHTML = e.target.innerHTML; }); }); 您当前方法的问题是您试图直接修改所选范围的outerHTML,这是不受支持的。相反,您应该使用范围对象的 extractContents() 方法将所选内容作为文档片段获取,从该片段中删除 元素,然后将修改后的片段插入回文档中。 <p> An <span class="item1">easyJet pilot</span> has told tourists that flying to <span class="item2">Rhodes</span> is a “terrible idea” just minutes before taking off, it has been reported, as <span class="item3">wildfires spread across Greece</span> journalist Gwyn Loader, who was on the flight to the island to report for BBC Wales Welsh-language news programme Newyddion, said <span class="item4">eight passengers</span> subsequently decided to disembark, including a young boy who was in tears. </p> <script> function cleanup() { const selObj = window.getSelection(); const selRange = selObj.getRangeAt(0); // Create a new div element to hold the selected content const tempDiv = document.createElement('div'); tempDiv.appendChild(selRange.cloneContents()); // Remove span tags from the selected content const spanElements = tempDiv.querySelectorAll('span'); spanElements.forEach(span => { const textNode = document.createTextNode(span.textContent); span.parentNode.replaceChild(textNode, span); }); // Insert the modified content back into the document selRange.deleteContents(); selRange.insertNode(tempDiv); // Clear the selection selObj.removeAllRanges(); } // Example: Call the cleanup function when a span is clicked const spans = document.querySelectorAll('span'); spans.forEach(span => { span.addEventListener('click', cleanup); }); </script>

回答 2 投票 0

如果多次使用,具有输入属性的可重用组件将无法在父组件上正确呈现

我创建了一个可重用组件(星级评定),我计划在多个地方使用它来对不同的事物进行评分,当我仅使用可重用组件一次时它工作正常,但事实并非如此

回答 3 投票 0

查询父子实体数据累计数量

如何进行查询以将实体及其子实体的数据聚合到最低级别? 我有两张桌子。 第一个是 tblEntity,一个带有实体和父实体的自连接表

回答 0 投票 0

dotnet项目关闭时不要终止进程

我正在为 Linux 系统(debian)开发一个 dotnet 应用程序。我想从我的应用程序在 Linux 上运行命令。我正在使用这种方法运行命令。如果可以的话我真的不想改变。 公共圣...

回答 0 投票 0

每 3 个元素包裹一个父元素

我只是想用一类搜索音频围绕每 3 个 div 包装一个 div w 类幻灯片。 我遇到的一个错误是它说 elem.parentElement 是未定义的...... 所以部分工作......

回答 3 投票 0

具有动态条件的雪花 LAST_VALUE

我想在带有组的排序层次结构中确定孩子的父母。我试图使用 LAST_VALUE,但直到现在我都无法使用

回答 0 投票 0

针对动态创建的孩子

这是一个很长的:) 我有一个生成几个元素的异步函数。我的问题是我想控制台记录我单击的元素的标题。我之前用过e.target指向...

回答 1 投票 0

子进程不能用信号操作

我在将信号从父进程传递给子进程时遇到问题,因为它就像孩子没有正确打开一样,因为当我这样做时 if(oct_pid == 0) 我无法进入。 计算器.c #包括 我在将信号从父进程传递给子进程时遇到问题,因为它就像孩子没有正确打开一样,因为当我这样做时 if(oct_pid == 0) 我无法进入。 计算器.c #include <sys/types.h> #include <sys/stat.h> #include <stdio.h> #include <string.h> #include <sys/file.h> #include <signal.h> #include <stdlib.h> #include <fcntl.h> #include <unistd.h> #include <sys/wait.h> void octal(int fd){ int valor; while (1) { pause(); read(fd,&valor,sizeof(int)); printf("%o",valor); } } void hexa(int fd){ int valor; while (1) { pause(); read(fd,&valor,sizeof(int)); printf("%X",valor); } } void handler(int signal){} int main(){ int canal,pipe_fd[2],octal_pid,hexa_pid; unlink("canal"); if(mkfifo("./canal", 00660)!=0){ printf("Error al crear la pipe"); exit(EXIT_FAILURE); } canal = open("./canal",O_RDONLY); if(canal < 0){ printf("Error al obrir la pipe."); exit(EXIT_FAILURE); } pipe(pipe_fd); octal_pid = fork(); if(octal_pid == -1){ printf("Error al crear el proceso octal.\n"); exit(EXIT_FAILURE); } else if(octal_pid == 0){ close(pipe_fd[1]); octal(pipe_fd[0]); signal(SIGUSR1,octal); } else { hexa_pid = fork(); if(hexa_pid == -1){ printf("Error al crear el proceso hexadecimal.\n"); kill(octal_pid, SIGTERM); exit(EXIT_FAILURE); } else if(hexa_pid == 0){ close(pipe_fd[1]); hexa(pipe_fd[0]); signal(SIGUSR1,hexa); } else { close(pipe_fd[0]); while(1){ char c; int valor; read(canal,&c,sizeof(char)); read(canal,&valor,sizeof(int)); if(c == 'o'){ printf("Calculant en octal ... \n"); write(pipe_fd[1], &valor, sizeof(int)); kill(octal_pid,SIGUSR1); } else if(c == 'h'){ printf("Calculant en hexadecimal ... \n"); write(pipe_fd[1], &valor, sizeof(int)); kill(hexa_pid,SIGUSR1); } else if( c == 'x'){ printf("Sortint...\n"); kill(octal_pid, SIGTERM); kill(hexa_pid, SIGTERM); break; } } close(canal); close(pipe_fd[1]); waitpid(octal_pid, NULL, 0); waitpid(hexa_pid, NULL, 0); } } return 0; } client.c #include <sys/types.h> #include <sys/stat.h> #include <stdio.h> #include <string.h> #include <sys/file.h> #include <signal.h> #include <stdlib.h> #include <fcntl.h> #include <unistd.h> #include <sys/wait.h> int fd, valor; char operacio; int llegir_numero() { char buff [10]; int llegits; llegits=read(0, buff, 10); //llegir del teclat un màxim de 10 chars buff[llegits-1] = (char)0; //canvi del \n per un \0 return(atoi(buff)); //es converteix a enter } int main(){ fd = open("./canal",O_WRONLY); if(fd < 0){ printf("La pipe no s'ha obert correctament."); exit(EXIT_FAILURE); } do{ printf("Introdueix 'o' o 'h', x per acabar\n"); scanf(" %c",&operacio); if(operacio == 'o' || operacio == 'h'){ printf("Introdueix un valor enter positiu:\n"); valor = llegir_numero(); write(fd,&operacio,sizeof(char)); write(fd,&valor,sizeof(int)); } else if(operacio != 'x'){ printf("Lletra incorrecte."); } } while(operacio != 'x'); close(fd); return 0; } 我在这段代码中遇到了 kill(octal_pid,SIGUSR1) 的问题,理论上,当我向子进程 octal_pid 发送信号时,它没有工作,因为我无法进入这个管道,我知道为什么。 谢谢帮助 首先,阅读这个: sigaction和signal有什么区别? 你真的需要在 POSIX 系统上使用 sigaction() 而不是 signal(). 第二,给出 void octal(int fd){ int valor; while (1) { pause(); read(fd,&valor,sizeof(int)); printf("%o",valor); } } 这是错误的: signal(SIGUSR1,octal); 因为传递给信号处理程序的 int 参数是 signal 的值 - 而不是某个文件描述符。您需要找到另一种方法将正确的文件描述符值传递给信号处理程序。 此外,您需要安装信号处理程序(使用sigaction())before您调用fork(),否则您的子进程可以很好地发送信号甚至在父进程安装其信号处理程序之前完成运行. 最后,同一类型的多个信号可以合并为一个信号,因此如果您的子进程发送例如 8 个SIGUSR1 信号,父进程可能只会得到其中一个。还要注意这个问题和答案:Blocking signals in C

回答 1 投票 0

SELECT for a Parent, Children and ORDER BY [Order] column

我在 SQL Server 中有一个表 myTable,如下所示: ID 父母身份 命令 1个 1个 1个 2个 2个 1个 3个 3个 1个 4个 1个 2个 5个 1个 1个 6个 1个 3个 7 4个 1个 8个 2个 2个 9 2个 1个 100 3个 1个 10 10 1个 194 10 1个 295 194 1个 205 194 2个 215 1...

回答 2 投票 0

Superset - 无法使用超集 CUSTOM SQL 将 onclick 处理程序添加到锚点 (<a>) 标记

我正在尝试使用超集 CUSTOM SQL 将 onclick 处理程序添加到标记 连接(' 我正在尝试使用超集 CUSTOM SQL 向标签添加一个 onclick 处理程序 CONCAT('', CLICK_LINK_TEXT, '') 渲染此元素后,渲染的超集内容中缺少 onclcik 属性。看起来像 点击 有什么方法可以将点击处理程序添加到超集仪表板中的元素。将信息传递给父窗口。

回答 0 投票 0

覆盖父主题 /inc/template-tags.php

类似于 webmaster-alex-l 的问题,Child themed template-tags.php,我需要覆盖一个 twentytwenty child theme 的 /inc/template.tags。根据 webmaster-alex-l 的帖子,我知道了一些......

回答 0 投票 0

Quill Editor 如何仅将 css 类设置为父级而不是其子级

我在一个有角度的项目中使用 Quill Editor,我的问题是当我将自定义类设置为一个元素(示例)时,我得到了这个结果,现在所有的上帝: testesetse... 我在一个角度项目中使用 Quill Editor,我的问题是当我将自定义类设置为一个元素(示例)时,我得到了这个结果,现在所有的上帝: <p class=custom-class>testesetsetset</p> 当我尝试添加另一个标签时遇到了一个大问题,羽毛笔为其子项设置了相同的类,这就是我得到的: <p class=custom-class> testes <strong class=custom-class>ets</strong> etset</p> 有可能实现这个结果,而不是将课程设置给它的孩子吗? <p class=custom-class> testes <strong>ets</strong> etset</p> 非常感谢谁会提供帮助!

回答 0 投票 0

How to change parent array element in state from child component using reactjs?

我有一些值的数组和一个应该包含这些值的表。每个单元格不仅包含一个值,还包含一个允许编辑值的文本输入。此文本输入是我的自定义元素...

回答 1 投票 0

elasticsearch:获取父级的所有子级或孙级文档

我正在尝试搜索功能,该功能允许我获取与显示的父项相关的所有文档。 例如: 父母 -> 孩子 -> 孙子 -> 孙子 如果搜查了孩子,那么

回答 0 投票 0

如何从子表单访问父表单按钮?

我有一个程序,它有一个父表单,然后创建一个子表单。单击子窗体中的 updateButton 后,我希望触发父窗体中的 searchButton。 但是我得到一个

回答 5 投票 0

为单个参考表管理多个父表[关闭]

我正在 MySql 中为语言学习应用程序设计一个数据库。这里我有几个表(实体),它们有与之相关的测试:语法、任务类型和文本。所以,我需要一个外键

回答 0 投票 0

当悬停在子元素上时,如何将父元素的边框颜色设置为与子元素的颜色相同,

这是html的结构 这是html的结构 <div class="parent"> <div class="child1" style="background: red;"></div> <div class="child2" style="background: blue;"></div> </div> 我想制作border-color的.parent元素red当我hover超过.child1和blue当我hover超过.child2 仅使用 CSS。 这可能吗 我是网络新手,所以我在 chatGPT 上提问。它会产生一些无效的垃圾代码。 .parent:hover { border-color: red; } .child1:hover ~ .parent { border-color: blue; } .child2:hover ~ .parent { border-color: green; } 终于得到我的答案 :has()解决了我的问题。 这是css代码 .parent:has(.child1:hover){ border-color: red; } .parent:has(.child2:hover){ border-color: blue; } 这是我正在处理的页面。 代码笔:https://codepen.io/manoj1310/pen/WNaxRqa

回答 1 投票 0

mysql数据库中php主数据有更新时如何更新Transactional Json数据

假设,我的 Web 应用程序中有一个城市主表,其中包含城市的 ID 和名称,因此它就像 ID = 1 和名称 = 第一城市,ID = 2 和名称 = 第二城市等等。 现在我有一个添加

回答 0 投票 0

如何在 JavaScript 中将简单的 json 转换为嵌套的 json

我有一个返回简单 json 的 API。需要根据每个节点中的“ParentId”将其转换为父/子关系中的嵌套 JSON 数组。下面是示例 JSON 数组,我...

回答 3 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.