【问题标题】:Return <td> value via onclick()通过 onclick() 返回 <td> 值
【发布时间】:2016-10-23 04:30:39
【问题描述】:

使用 JavaScript,我有一个动态构建的表。在每个 tr 中,我有 2 个 td 元素。第一个 td 始终是红色 X。我希望能够在单击红色 X 时识别第二个 td 内的值。

第二个td 中的值在下面用jsonPos.POS.RES_QUAL[i].POS 表示。目前,当单击任意行上的红色 X 时,它返回相同的 POS 值;它总是返回该数组中的第一个值。

for (var i = 0; i < jsonPos.POS.RES_QUAL_CNT;i++) {
    surgViewTable2 += "<tr>"  
                   + "<td class='btn red delsave'"
                   + "onclick='alert(jsonPos.POS.RES_QUAL[i].POS)'>"
                   + "X</td>"

                   + "<td class='labCol1'>"
                   +  jsonPos.POS.RES_QUAL[i].POS
                   +  "</td>"

                   +  "<td class='hidden'></td>"
                   +  "</tr>"
} 

【问题讨论】:

  • 这是您的实际代码吗?因为如果是这样,您在 X&lt;/td&gt;" 之前缺少双引号。另外,在警报中,您是在尝试执行 jsonPos.POS.RES... 还是只想在构建 html 时打印实际值?
  • 感谢 Nadir....这是本网站的格式错误。不过,我很欣赏这些提醒。你能帮我设置/获取 的属性,以便我可以将它传递给函数吗? $("td.hidden").attr("值",jsonPos.POS.SURG_QUAL[i].POS_CD);这行得通吗?
  • 这将在所有td.hidden中设置一个具有相同值的属性。
  • 对不起,我是 Javascript 的新手......我只想根据当时我的数组中的内容来设置每个 值。我该怎么做?
  • 如果数组中的顺序与外观中的顺序相同:var z = 0; var tds = $('yourtableselector').find('td'); for(var i in tds) { tds[i].attr('value', jsonPos.POS.SURG_QUAL[z].POS_CD); z++; }

标签: javascript html onclick html-table


【解决方案1】:

jsonPos.POS.RES_QUAL[i].POS 可能不在窗口范围内,这就是为什么当用户单击此 td 时此变量 jsonPos 可能不可用

渲染后可以直接取下一列的值。

替换

"onclick='alert(jsonPos.POS.RES_QUAL[i].POS)'>"

通过

"onclick='alert(this.nextSibling.innerHTML)'>"

另外,你的下一行没有有效的语法,它缺少双引号。

应该是

+ "X</td>"

【讨论】:

  • 谢谢哥们,效果很好!双引号遗漏只是在本网站上进行编辑的一个问题....不过感谢您指出这一点!所以我真正尝试使用 onclick() 做的是调用一个函数并将 jsonPos 元素中的值传递给函数,以便我可以从自定义表中删除它。我要传递的值不是文字字符串,而是幕后的 code_value。你知道我如何用你提出的类似方法来引用这个值吗?如果我所说的让你感到困惑,请告诉我。非常感谢您的帮助!
  • @愿意提供帮助,接受并支持对您有帮助的最佳答案meta.stackexchange.com/questions/5234/…
  • @您是否需要将要获取的值放入td 的某个属性中,稍后使用getAttribute 方法获取它
  • 感谢您的建议。关于我将如何做到这一点的任何提示?我对 Javascript 很陌生。基本上只是在飞行中学习。我尝试将 JSON 元素放入我在 CSS 中隐藏的新 元素中,但似乎该值没有正确传递。
  • 这是否正确设置了attr? $("td.hidden").attr("value",jsonPos.POS.SURG_QUAL[i].POS_CD);
猜你喜欢
相关资源
最近更新 更多
热门标签