0

我试图通过模式调用评论部分,为此我需要传递一个唯一的 id 以及 #display_comment 。当我硬编码如#display_comment1、#display_comment2 时,它可以工作。我需要知道如何将值作为变量传递。

我正在使用 dom-target 将其作为变量传递给 myData1,但它不起作用。控制台在下一行显示#display_comment & 1。

<div id="dom-target" style="display: none;">
<?php       
  echo htmlspecialchars($test['id']);
?>
</div>
var div = document.getElementById("dom-target");
 var myData1 = div.textContent;
 load_comment();

 function load_comment()
 {
  $.ajax({
   url:"fetch_comment.php",
   method:"POST",
   success:function(data)
   {
    $('#display_comment'+myData1).html(data);
   }
  })
 }
4

2 回答 2

3

DIV 在 ID 周围包含大量空格。你需要用trim().

var myData1 = div.textContent.trim();
于 2020-05-11T06:05:21.840 回答
2

@barmar 写的是正确的。虽然我会为此建议一个更好的方法。每当您想将一些 html 数据“获取”到 javascript(此处数据由 PHP 设置)时,您可以data像这样使用 html 中的属性:

<div id="dom-target" style="display: none;" data-id="<?php echo htmlspecialchars($test['id']);?>">
  <?php       
    echo htmlspecialchars($test['id']);
  ?>
</div>

看到我已经使用 id将data属性设置为上述属性。div

现在,当您想在 jQuery 中获取此 id 时,您可以使用$("#dom-target").data("id");like

var myData1 = $("#dom-target").data("id");

这为您提供了一种更好、更简洁的方式来从 html 获取数据到 javascript。

于 2020-05-11T06:11:25.353 回答