假设我有这个字符串:<span>标签中的“hello”,我想为每个字母执行一个代码(例如:隐藏、改变不透明度等)。我如何使用JS/Jquery实现这一点,而不必这样做:
<span>
<span>h</span><span>e</span><span>l</span><span>l</span><span>o</span>
w6lpcovy1#
这里有几个例子,随机地将颜色和大小应用于每个字符,而不将每个字母 Package 在span标签中。forEach循环方法:JSFiddle
span
forEach
var span = document.querySelector('span') var str = span.innerHTML span.innerHTML = '' str.split('').forEach(function (elem) { var newSpan = document.createElement('span') newSpan.style.color = "#"+((1<<24)*Math.random()|0).toString(16) newSpan.style.fontSize = (Math.random() * (36 - 10) + 10) + 'px' newSpan.innerHTML = elem span.appendChild(newSpan) })
<span>hello</span>
setTimeout方法:JSFiddle
setTimeout
var span = document.querySelector('span') var str_arr = span.innerHTML.split('') span.innerHTML = '' var ii = 0 ~function crazy(ii, str_arr, target) { if ( ii < str_arr.length ) { var newSpan = document.createElement('span') newSpan.style.color = "#"+((1<<24)*Math.random()|0).toString(16) newSpan.style.fontSize = (Math.random() * (72 - 36) + 36) + 'px' newSpan.innerHTML = str_arr[ii] target.appendChild(newSpan) setTimeout(function () { crazy(ii += 1, str_arr, target) }, 1000) } }(ii, str_arr, span)
pkbketx92#
你可以的以html
<span id="my-text">hello</span> <div id="split-span" ></div>
在JavaScript中,
var text = $('#my-text').html().split(''); for(var i=0; i<text.length; i++){ $('#split-span').append('<span>'+text[i]+'</span>'); }
ujv3wf0j3#
你可以在vanilla JavaScript中相当容易地做到这一点,而不需要像jquery这样的库。可以使用split将字符串转换为数组。这会将每个字母放入数组的索引中。从这里,您可以使用循环向每个索引(或字母)添加标记。举例说明:
split
var str = "hello"; var res = str.split(''); for( var i = 0; i < res.length; i++ ){ res[ i ] = '<span>' + res[ i ] + '</span>' }
3条答案
按热度按时间w6lpcovy1#
这里有几个例子,随机地将颜色和大小应用于每个字符,而不将每个字母 Package 在
span
标签中。forEach
循环方法:JSFiddlesetTimeout
方法:JSFiddlepkbketx92#
你可以的
以html
在JavaScript中,
ujv3wf0j3#
你可以在vanilla JavaScript中相当容易地做到这一点,而不需要像jquery这样的库。可以使用
split
将字符串转换为数组。这会将每个字母放入数组的索引中。从这里,您可以使用循环向每个索引(或字母)添加标记。举例说明: