Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取元素外部的第一个字符_Javascript_Jquery - Fatal编程技术网

Javascript 获取元素外部的第一个字符

Javascript 获取元素外部的第一个字符,javascript,jquery,Javascript,Jquery,如何在jQuery中获取元素前面的第一个直接字符?这将返回d,用于抓取之前的第一个直接字符。在这种情况下,光标: <span class="input">pwd<span class="cursor">&nbsp;</span></span> pwd 可读性:选择“.cursor”并获取第一个匹配元素(实际节点,而不是jQuery对象)。获取该节点的上一个同级节点(应该是文本节点),并获取其节点值(文本内容)。在不一定知道字符串长度的情

如何在jQuery中获取元素前面的第一个直接字符?这将返回
d
,用于抓取
之前的第一个直接字符。在这种情况下,光标

<span class="input">pwd<span class="cursor">&nbsp;</span></span>
pwd

可读性:选择“.cursor”并获取第一个匹配元素(实际节点,而不是jQuery对象)。获取该节点的上一个同级节点(应该是文本节点),并获取其节点值(文本内容)。在不一定知道字符串长度的情况下获取最后一个字符,然后返回匹配的字符串。每个步骤都有一个冗余的
|{}
| |
|[“”]
来确保下面的步骤得到预期类型的内容,而不是
null

,因为jQuery忽略常规文本节点,所以您需要使用一些DOM来完成所做的事情。我会这样做:

var sibling = $('.cursor')[0].previousSibling.nodeValue;
console.log(sibling.charAt(sibling.length - 1));

我能想到的几件事可能与你想要做的事情很接近,首先请注意,你的目标元素在哪里以及前一个角色在哪里都很重要。首先,最简单的方法是在.parent().html()上使用正则表达式,在元素开始之前获取字符

var content = $(".cursor").parent().html();
var lastChar = content.replace(/.*?(.?)<.*?class="cursor".*?/g, '$1');
使用jQuery内容()


如何检查这是否是一个字符,如果是,请将其从字符串末尾删除?您也可以使用jQuery的
.contents()
,但这更干净+1.
var content = $(".cursor").parent().html();
var lastChar = content.replace(/.*?(.?)<.*?class="cursor".*?/g, '$1');
var content = $(".cursor").prev().html();
var lastChar = content.substr( content.length-2, 1 );
var text=$('.input').contents().filter(function(){
        return this.nodeType==3 && $(this).next('.cursor').length
    }).text() || ' ';
var lastLetter=text.substr(-1);