【问题标题】:Get Value in JavaScript [closed]在 JavaScript 中获取价值 [关闭]
【发布时间】:2019-06-07 04:11:44
【问题描述】:

如何通过类和段落id获取span的值??

代码

 function doit_onkeypress(a) {
     debugger;
     if (event.keyCode == 13 || event.which == 13) {
         alert(a);
         var splitdata;
         span_array = [];//define array

         $(".token").each(function () {// iterate over same class spans
             console.log($(this).text()); // print the text of each span
             span_array.push($(this).text());// push span text to array
         });
         console.log(span_array); // you can save data an array for further use
         var final_string = span_array.join(); //join array value as string
         console.log(final_string); // check string 
         splitdata = final_string
         document.getElementById("hdnvaluearray").value = final_string;
         document.getElementById("hdnvaluearray").value = a;
     }
 }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p id="para" onkeypress="javascript:  doit_onkeypress(this.id);">
    <span class="token">test1</span>
     <span class="token">test2</span>
     <span class="token">test3</span>
</p>

<p id="para2" onkeypress="javascript:  doit_onkeypress(this.id);">
    <span class="token">test4</span>
     <span class="token">test5</span>
     <span class="token">test6</span>
</p>

此代码向我显示跨度值,例如 test1、test2、test3、test4、test5、test6 但我想显示这些跨度值 (当点击第一段显示输出)像 test1,test2,test3 (当点击第二段显示输出时)like test4,test5,test6

【问题讨论】:

  • 你真正想要什么?一个数组还是只是 p 中的文本?
  • 我想要焦点数组

    @pete

  • 好的,第二个问题 - p 内容不可编辑,所以您希望如何在其中捕获按键事件?你的意思是你想让这个事件触发 p 的 onclick 吗?
  • 实际上我正在使用这个函数来生成令牌,所以这里也包含一个输入标签,但我没有在这个问题中显示,我认为这没有必要
  • 获取数组最简单的方法,但是是Jquery是: $(document).on("click", "#para", function (){var array= $(".token" ).map(function () { return $(this).text() }).toArray();});

标签: javascript jquery html


【解决方案1】:

修复您的代码:

  1. 添加event

    function doit_onkeypress(a, event) {
    

    ...

    <p id="para" tabindex="0" onkeypress="javascript:  doit_onkeypress(this.id, event);">
    
  2. 将 id 添加到 jQuery 选择器中

    $("#" + a + ".token").each(function () {
    
  3. 为段落添加一个tabindex,以便它可以被聚焦。

这对我来说是这样的:

<html>
<head>

</head>
<body>
<p id="para" tabindex="0" onkeypress="doit_onkeypress(this.id, event);">
    <span class="token">test1</span>
    <span class="token">test2</span>
    <span class="token">test3</span>
</p>

<p id="para2" tabindex="1" onkeypress="doit_onkeypress(this.id, event);">
    <span class="token">test4</span>
    <span class="token">test5</span>
    <span class="token">test6</span>
</p>
<script>
function doit_onkeypress(a, event) {
    debugger;
    if (event.keyCode == 13 || event.which == 13) {
        alert(a);
        var splitdata;
        span_array = [];//define array

        $(".token").each(function () {// iterate over same class spans
            console.log($(this).text()); // print the text of each span
            span_array.push($(this).text());// push span text to array
        });
        console.log(span_array); // you can save data an array for further use
        var final_string = span_array.join(); //join array value as string
        console.log(final_string); // check string 
        splitdata = final_string
        document.getElementById("hdnvaluearray").value = final_string;
        document.getElementById("hdnvaluearray").value = a;
    }
}
</script>
</body>
</html>

【讨论】:

  • 感谢您的回答,它对

    工作正常,但点击时不会生成事件

  • 我编辑了我的答案。
【解决方案2】:

替换这个。

$(".tknz-token-label")

$("#para .token").each(function () { });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-26
    • 2013-09-27
    相关资源
    最近更新 更多