Jquery 如何在同一行的标记中附加字母

Jquery 如何在同一行的标记中附加字母,jquery,html,regex,Jquery,Html,Regex,正如你们在手机上看到的,我正在构建一个键盘功能。到目前为止,我已经有了一个可以正常工作的键盘,它可以在divp中添加我想要的字母 这是我没有正则表达式的原始键盘: 当我使用正则表达式时,所有字母都变成大写:请参阅: 正则表达式做得很好,因为问题是在每次点击后,下一个字母都会在开发者工具中点击新行: 这是开发人员工具中的外观: <div id="result"> <p> "Q" "W" "E" "."

正如你们在手机上看到的,我正在构建一个键盘功能。到目前为止,我已经有了一个可以正常工作的键盘,它可以在
divp
中添加我想要的字母

这是我没有正则表达式的原始键盘:

当我使用正则表达式时,所有字母都变成大写:请参阅:

正则表达式做得很好,因为问题是在每次点击后,下一个字母都会在开发者工具中点击新行:

这是开发人员工具中的外观:

<div id="result">
    <p>
       "Q"  
       "W"
       "E"
       "."
       "R"
       "T"
       "Y"
   </p>
</div>


“Q”
“W”
“E”
"."
“R”
“T”
“Y”

虽然这是我想要的结果:

<div id="result">
    <p>
       "Qwe. Rty"  
   </p>
</div>


“Qwe.Rty”

是什么导致了这种行为

编辑:


也许我不清楚。我不希望它在我的console.log或dev工具中看起来很好,而是在屏幕上。但我知道这可能是因为我的正则表达式。为什么我的正则表达式总是大写。顺便说一句,我对正则表达式的理解很差。

非常简单的解决方案,下面是更新的代码

var c = 0;
    $(".ui-keyboard-1 button").add(".ui-keyboard-2 button").add(".ui-keyboard-3 button").click(function () {
        c++;

        if ($(this).hasClass('ui-keyboard-noresult')) {
            return;
        }
        $('.ui-keyboard-space').click(function () {
            $('.result p:last').append(' ');
        });

        $(this).val('span');
        $result = $(this).find('span').text().toLowerCase();
        $re = /(^|\. *)([a-z])/g;
        $result = $result.replace($re, function (x) {
            return x.toUpperCase();
        });



        $(".result p:last").append($result);

                //debug
        if(c > 1){
            console.clear();
        }
        console.log($('.result p:last').html());
    });

谢谢

这是因为您正在使用
append()
。但是,您应该注意,HTML文档中的空白大部分被忽略,因此它对结果绝对没有影响。这就是开发工具在添加文本节点后显示标记的方式。如果您复制元素的outerHTML,您将看到它相当于
Qwe。Rty

@David Thomas就像小提琴一样。它将显示在一行上。如果我将regex添加到其中,所有字母都会变成大写,因此我认为浏览器会将其视为进入一个新行,从而使用regex将其大写。我可能误解了一些事情,但不同的字母大小写似乎是由于:
$result.replace($re,function(x){return x.toUpperCase();})@DavidThomas我试过这个。还试图重新命名它,并认为它可能导致某种错误。在你的例子中,我认为他没有看到那行$results,只是跳过了正则表达式。请描述问题是什么,以及为什么你的代码修复了它。我们来这里是为了教育人们,而不是简单地抛弃代码。我很高兴你能和我一起思考。但这并不是我想要的。我认为问题是因为这种行为。我尝试了您的方法,得到了一个整洁的console.log,但仍然返回大写字母。我想要一个整洁的字符串,当regex被称为大写,否则只有小写。