假设我有一个html元素,我想知道元素中哪个单独的字符被点击,是否有任何方法可以使用javascript / jQuery将每个字符分隔成自己的元素。
答案 0 :(得分:0)
愚蠢而快速
<p onclick="clicked('a')";>a</p>
<p onclick="clicked('b')";>b</p>
<p onclick="clicked('c')";>c</p>
适合的风格。
... HTML
<p id="text" onclick="which(event)">abcde</p>
... JS
function which(event) {
var offsetX = $("#text").offset().left;
var mX = event.x-offsetX;
// use event.clientX for firefox and so on
if (mX < 5) {
alert("a");
} else if (mX < 20) {
alert("b");
} else if (mX < 32) {
alert("c");
} else if (mX < 43) {
alert("d");
} else if (mX < 56) {
alert("e");
}
}
虽然我不知道如何将p元素的字母宽度保持为常数......
答案 1 :(得分:0)
这是一个很慢的代码,但无法找到更好的方法:
$('yourTarget').html(function(_,t){
return t.replace(/(.)/g, '<span>$1</span>');
}).on('click', 'span', function(){
alert($(this).text());
});