jquery - 通过 jQuery 从粘贴到 textarea 的自定义 html 中用逗号分割文本
问题描述
我在 textarea 中粘贴了一些自定义 html。我想用逗号分割它的强度值。我可以访问它的所有值,但这些值是在一行中出现的,没有任何逗号。请看我的代码并给我您的宝贵建议。
$(document).ready(function(){
var $intensity = $("<div/>").html($('.textarea').val()).find("intensity").find("intensity").text();
console.log($intensity);
});
// It should give 64, 88, 32, 53
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<textarea class='textarea'>
<intensity><theta>28</theta><da>4.0</da><intensity>64</intensity><h>1</h></intensity><intensity><theta>32</theta><da>1.3</da><intensity>88</intensity><h>1</h></intensity><intensity><theta>21</theta><da>3.8</da><intensity>32</intensity><h>1</h></intensity><intensity><theta>46</theta><da>2.4</da><intensity>53</intensity><h>1</h></intensity>
</textarea>
解决方案
您可以使用.map()
来获得所需的结果,然后.join(", ")
将其从数组转换为字符串。
.map(function(){
return $.trim($(this).text());
}).get().join(", ");
如:
var $intensity = $("<div/>").html($('.textarea').val()).find("intensity").find("intensity").map(function(){
return $.trim($(this).text());
}).get().join(", ");
演示
$(document).ready(function() {
var $intensity = $("<div/>").html($('.textarea').val()).find("intensity").find("intensity").map(function(){
return $.trim($(this).text());
}).get().join(", ");
console.log($intensity);
});
// It should give 64, 88, 32, 53
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<textarea class='textarea'>
<intensity><theta>28</theta><da>4.0</da><intensity>64</intensity><h>1</h></intensity><intensity><theta>32</theta><da>1.3</da><intensity>88</intensity><h>1</h></intensity><intensity><theta>21</theta><da>3.8</da><intensity>32</intensity><h>1</h></intensity><intensity><theta>46</theta><da>2.4</da><intensity>53</intensity><h>1</h></intensity>
</textarea>
要获得数组的最大值,您可以使用Math.max.apply(null, $intensity)
阵列演示
$(document).ready(function() {
var $intensity = $("<div/>").html($('.textarea').val()).find("intensity").find("intensity").map(function(){
return $.trim($(this).text());
}).get();
console.log(Math.max.apply(null, $intensity));
});
// It should give 64, 88, 32, 53
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<textarea class='textarea'>
<intensity><theta>28</theta><da>4.0</da><intensity>64</intensity><h>1</h></intensity><intensity><theta>32</theta><da>1.3</da><intensity>88</intensity><h>1</h></intensity><intensity><theta>21</theta><da>3.8</da><intensity>32</intensity><h>1</h></intensity><intensity><theta>46</theta><da>2.4</da><intensity>53</intensity><h>1</h></intensity>
</textarea>
推荐阅读
- python - 如何测试从头开始编写的逻辑回归代码?
- live-connect-sdk - 如何将connectSDK库添加到android studio
- asp.net - 将 [Authorize] 与 [Route("xyz")] 一起使用时的无限循环
- google-apps-script - 如何在文件启动(onOpen)时直接启动 HtmlService?
- python-2.7 - 上传到服务器的图像文件损坏/不支持格式;蟒蛇,cgi和html
- generics - Groovy @CompileStatic 与有界泛型
- spring-boot - 具有多个模块的 Spring Boot 项目的集中控制台着色
- ios - 将数据传递给 Swift 中的选择器
- php - 将整个动态页面放入 If 语句的正确方法
- javascript - 如何有条件地使用内置的 Node.js 或带有 ES6 样式导入的浏览器 API 方法?