jquery替换td内容

时间:2018-03-10 18:05:16

标签: javascript jquery

我已经部分成功地搜索了我的问题的答案但不幸的是,我发现的答案只会改变一个字段而不是所有字段。

我的网站上有一张表格如下:

<table>
<tr>
<td>1</td>
<td id="demand">DL-001</td>
<td>Description 1</td>
</tr>
<tr>
<td>2</td>
<td id="demand">DL-002</td>
<td>Description 2</td>
</tr>
<tr>
<td>3</td>
<td id="demand">DL-003</td>
<td>Description 3</td>
</tr>
</table>

这是由PHP脚本生成的,从MySQL数据库查询详细信息。

我想要做的是使用jQuery替换以下各项:

<td id="demand">DL-001</td>

<td id="demand"><a href="order.php?d=DL-001">DL-001</a></td>

非常感谢任何帮助!

编辑:从OP的评论中添加了jQuery:

$(".demand").text('text');用class&#34; demand&#34;替换所有tds。内容到&#39;文字&#39;。

但是当我使用以下内容时,它不起作用:

$(".demand").text('<a href=\'order.php?d=' + data[2] + '\'>' + data[2] + '</a>');

3 个答案:

答案 0 :(得分:2)

将您的ID更改为类 - DOM中的ID必须是唯一的,并且会导致大多数javascript出现问题。

下面是一个工作片段,ID已更改,并提供了可用于完成此操作的示例jQuery。

&#13;
&#13;
*x = 7; // assign 7 in the address that x is pointing to 
printf("%d\n", y);// will print 7

int z = 10;
x = &z; // now x is pointing at z and no longer pointing at y
printf("%d\n", *x);// will print 10
&#13;
// no-conflict safe document ready
jQuery(function($) {
  // loop over all td's with the class of demand
  $('td.demand').each(function() {
    // load the DL-XXX into a variable (since it's used more than once)
    var dl = $(this).text();
    // change the td html to the link, referencing the DL-XXX number
    $(this).html('<a href="order.php?dl=' + dl + '">' + dl + '</a>');
  });
});
&#13;
&#13;
&#13;

答案 1 :(得分:0)

要获得预期结果,请使用以下使用jquery append

的选项
$(".demand").each(function(){
  var val = $(this).text()
  $(this).html('<a href="order.php?d='+val+'">'+val+'</a>')
})

https://codepen.io/nagasai/pen/zWxbqK

答案 2 :(得分:0)

试试这个:

(function($) {
  var demands = $(".demand");
  
  demands.each(function() {
    // Make sure to strip-off redundant calls to $(this)
    // Calling $(this) once suffices
    var el = $(this),
        txt = el.text();
    
    el.html($("<a>", {href: 'order.php?d='+txt, text: txt}));
  });
})(jQuery);
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
  <script src="https://code.jquery.com/jquery-3.1.0.js"></script>
</head>
<body>

<table>
  <tr>
  <td>1</td>
  <td class="demand">DL-001</td>
  <td>Description 1</td>
  </tr>
  <tr>
  <td>2</td>
  <td class="demand">DL-002</td>
  <td>Description 2</td>
  </tr>
  <tr>
  <td>3</td>
  <td class="demand">DL-003</td>
  <td>Description 3</td>
  </tr>
</table>
  
</body>
</html>