Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.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
如何将包含下拉选择选项的div的文本捕获为纯文本,而不捕获Javascript中的每个选项值?_Javascript_Html - Fatal编程技术网

如何将包含下拉选择选项的div的文本捕获为纯文本,而不捕获Javascript中的每个选项值?

如何将包含下拉选择选项的div的文本捕获为纯文本,而不捕获Javascript中的每个选项值?,javascript,html,Javascript,Html,我在一个HTML页面上有一个文本短语,部分是从单词下拉列表(从数组构建)中构建的 我希望能够按下一个按钮,将短语的文本传输到另一个div 问题是-它传输下拉列表中的所有选项,而不仅仅是我选择的选项 以下是一个工作示例: 这是我用来“传输”的函数。我也试过 function transfer() { total = document.getElementById('original').innerHTML; document.getElementById('result').inn

我在一个HTML页面上有一个文本短语,部分是从单词下拉列表(从数组构建)中构建的

我希望能够按下一个按钮,将短语的文本传输到另一个div

问题是-它传输下拉列表中的所有选项,而不仅仅是我选择的选项

以下是一个工作示例:

这是我用来“传输”的函数。我也试过

function transfer() {
    total = document.getElementById('original').innerHTML;
    document.getElementById('result').innerHTML = total;
}

我猜我必须以某种方式将“原始”HTML转换为纯文本。。。但是我不知道如何读取。

您可以使用
select
标记的
value
属性读取所选值。试试这个:

函数传递(){
const originalNode=document.getElementById('original')
const resultNode=document.getElementById('result')
//迭代原始节点中的所有节点
const resultFragment=document.createDocumentFragment()
originalNode.childNodes.forEach(cn=>{
如果(cn.nodeName=='SELECT'){
//如果节点是“选择”标记,则将其值读取为文本
resultFragment.appendChild(document.createTextNode(cn.value))
}否则{
//如果节点是文本节点(或任何其他节点),请按原样复制它
resultFragment.appendChild(cn.cloneNode(true))
}
})
//重置结果节点
resultNode.innerHTML=“”
//将结果设置为上面创建的片段
resultNode.appendChild(resultFragment)
}

您可以添加更多代码吗?看起来您是在连接div的内容,而不是替换itHi。我不确定我是。。。它取代了原来的东西。如果我再次按,它将替换。
function transfer() {
    total = document.getElementById('original').innerHTML;
    document.getElementById('result').innerHTML = total;
}