Javascript JQuery附加了一个下拉选项,将空格缩减为一个

Javascript JQuery附加了一个下拉选项,将空格缩减为一个,javascript,jquery,select,Javascript,Jquery,Select,我正在尝试使用jQuery在选择列表中动态附加一个选项: 设text1=jg; console.loglength文本:+text1.length; $selectList.append${ 数值:12, 文本:文本1 }; 这次它给出了文本的长度:7 现在我想从选择列表中检索所选文本,但是当我这样做的时候,我得到的文本只有中间一个空白,中间空白区域的其余部分被截断。我用于从粘贴在下面的选择列表中检索值的代码: 设e=document.getElementByIdselectList; 让选定项

我正在尝试使用jQuery在选择列表中动态附加一个选项:

设text1=jg; console.loglength文本:+text1.length; $selectList.append${ 数值:12, 文本:文本1 }; 这次它给出了文本的长度:7

现在我想从选择列表中检索所选文本,但是当我这样做的时候,我得到的文本只有中间一个空白,中间空白区域的其余部分被截断。我用于从粘贴在下面的选择列表中检索值的代码:

设e=document.getElementByIdselectList; 让选定项=e.options[e.selectedIndex].text; console.logtext:+选中; console.logselected length:+selected.length; 现在,文本仅为j、g和选定长度:3。如何从选择列表中获取上述7个长度的文本?

您需要使用innerHTML而不是文本:

设text1='jg'; console.loglength文本:+text1.length; $selectList.append${ 数值:12, 文本:文本1 }; 设e=document.getElementByIdselectList; 让selected=e.options[e.selectedIndex].innerHTML; console.logtext:+选中; console.logselected length:+selected.length; 您可以使用select的.textContent DOM属性,这样可以避免将文本解析为HTML时自然出现的空白规范化

但是,因为您使用的是JQuery,所以在已经使用JQuery的情况下混合和匹配普通DOM API是没有意义的

使用jQuery,可以使用元素的.text方法获得相同的结果

设text1=jg; console.loglength文本:+text1.length; 让$list=$selectList; $list.append${ 数值:12, 文本:文本1 }; console.logtext:+$list.text; console.logselected length:+$list.text.length;
您可以使用.innerHTML,但由于没有要解析的HTML,这有点浪费。改为使用.textContent。它们中的任何一个都可以用于innerText或innerHTML。不一定是textContentYes,我说过了,但是.innerHTML将解析任何HTML的文本。既然没有,这是浪费,而且在这种情况下,应该使用.textContent。那么为什么要将答案从textContent更改为JQuery text呢。如果你有信心,你应该坚持你的答案。阅读我对你评论的回复。你应该先阅读再打字。为什么不坚持用同样的答案呢。回答之前三思而后行。@AnkitAgarwal什么?!我仍然有最初的答案。我只是添加了更多内容,使其更加完整,因为OP正在使用JQuery。在发表毫无意义的评论之前,请三思。@AnkitAgarwal Stack Overflow允许并鼓励投稿人编辑他们的问题和答案,以改进他们。例如,我经常发布一个简短的答案,以帮助某人立即开始,然后我可能会修改答案几次,以添加更多信息,可能是一些背景和文档链接,并为总体可读性和清晰度。这是一件好事,不是坏事。快速的答案会立即提供帮助,然后额外的编辑会使答案对未来的访问者更有用。