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