简体   繁体   English

JavaScript 获取所选项目的文本内容

[英]JavaScript Get Selected Item's TextContent

I want to make a program that write out the textContent of the item that has clicked.我想制作一个程序来写出已单击项目的文本内容。 For some reason this program only get the last element's content.由于某种原因,该程序仅获取最后一个元素的内容。 Any idea what should I change inside the for loop?知道我应该在 for 循环中更改什么吗?

 var emailname = document.querySelectorAll(".name"); var gSenderName = document.getElementById('sname'); $('.name').click(function() { for (var i = 0; i < emailname.length; i++) { const sendername = emailname[i].textContent; gSenderName.textContent = sendername; } });
 .name:hover { text-decoration: underline; cursor: pointer; }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="name">first</div><br> <div class="name">second</div><br> <div class="name">third</div> <br> <div>Selected: <div id="sname"></div> </div>

You do not need the loop here at all.您根本不需要这里的循环。 You can simply get the currently clicked element's text by using this object.您可以使用this object 简单地获取当前单击的元素的文本。 I will also suggest you not mix up vanilla JS and jQuery unnecessarily:我还建议您不要将香草 JS 和 jQuery 不必要地混淆:

 var gSenderName = $('#sname'); $('.name').click(function(){ gSenderName.text($(this).text()); });
 .name:hover { text-decoration: underline; cursor: pointer; }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="name">first</div><br> <div class="name">second</div><br> <div class="name">third</div> <br> <div>Selected: <div id="sname"></div> </div>

The loop runs and sets the text content of each item one after the other.循环运行并一个接一个地设置每个项目的文本内容。 Because each override the other, you always get the last one.因为每个都覆盖另一个,所以你总是得到最后一个。

Just set the text content of the element that was clicked:只需设置被点击元素的文本内容:

 var gSenderName = document.getElementById('sname'); $('.name').click(e => { gSenderName.textContent = e.target.textContent; });
 .name:hover { text-decoration: underline; cursor: pointer; }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="name">first</div><br> <div class="name">second</div><br> <div class="name">third</div> <br> <div>Selected: <div id="sname"></div> </div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM