javascript - javascript 到 jquery 的转换(getelementbyid、标记名、innertext、innerhtml)

标签 javascript jquery

我有一些用 javascript 编写的代码,当我尝试在 jQuery 中进行转换时,出现错误。

    var holder = document.getElementById('filedetails')
    , rows = holder.getElementsByTagName('tr')
setSuccess = function(filename) {
      if (holder != null) {
        for (i = 0, j = rows.length; i < j; ++i) {
          cells = rows[i].getElementsByTagName('td');
          if (cells[0].innerText == filename && cells[3].innerText != "error!") {
            cells[3].innerHTML = "<a href='#' class='file-delete ss-delete no-click'></a>";
          }
        }
      }
    }

我试过了

var holder = $('#filedetails"), 
    rows = $('#filedetails tr") 

我不知道如何处理innertext和innerhtml。

<div data-behavior="delete-process" id="holder">
                <table>
                  <thead>
                    <tr>
                      <th class="medium-5">Name</th>
                      <th class="medium-3">Size</th>
                      <th class="medium-3">Type</th>
                      <th class="medium-1"></th>
                    </tr>
                  </thead>
                  <tbody id="filedetails">
<tr data-filesize="1.4" data-filename="Sample Image.jpg">
<td><strong>Sample_Image</strong></td>
<td class="nodesize">1.4 MB</td>
<td>JPG</td>
<td class="file-loading"><a href="#" class="file-delete ss-delete"></a></td></tr>
</tbody>
</table>
<div class="margin bottom large text-center drag-desc">drag and drop files here.</div>
              </div>

最佳答案

这是代码的“jqueryized”版本

var holder = $('#filedetails'),
  rows = holder.find('tr');
var setSuccess = function(filename) {
  rows.each(function() {
    var cells = $(this).find('td');
    if (cells.eq(0).text() == filename && cells.eq(3).text() != "error!") {
      cells.eq(3).html("<a href='#' class='file-delete ss-delete no-click'></a>");
    }
  });
};
setSuccess("Sample_Image");

仅使用行的替代方案:

var  rows = $('#filedetails').find('tr');
var setSuccess = function(filename,useme) {
  useme.each(function() {
    var cells = $(this).find('td');
    if (cells.eq(0).text() == filename && cells.eq(3).text() != "error!") {
      cells.eq(3).html("<a href='#' class='file-delete ss-delete no-click'>freebeer</a>");
    }
  });
};
setSuccess("Sample_Image", rows);

要不使用位置表元素,请使用类并按 TD 单元格内的类进行过滤,如下所示:这假设每行使用一个类。

var rows = $('#filedetails').find('tr');
var setSuccess = function(filename, useme) {
  useme.each(function() {
    var cells = $(this).find('td');
    if (cells.filter('.file-name').text() == filename
          && cells.filter('.file-loading').text() != "error!") {
      cells.filter('.file-loading')
        .html("<a href='#' class='file-delete ss-delete no-click'>noclick</a>");
    }
  });
};
setSuccess("Sample_Image", rows);

Fiddle https://jsfiddle.net/MarkSchultheiss/0fx2jms7/2/

关于javascript - javascript 到 jquery 的转换(getelementbyid、标记名、innertext、innerhtml),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40138046/

相关文章:

javascript - 如何用 Jest 和测试库/ react 捕获这样的错误

Javascript检测录音

javascript - Jquery - 第一个字母不应该是数字

JavaScript : how inject a variable with html content to a data-attribute appended?

javascript - 用另一个内容替换 div 的内容

jquery - 使用 jQuery 进行 HTML5 验证?

jquery - 自动完成结果显示在页面左上方,而不是 spring mvc 中输入的底部

javascript - 动态创建 OnClick 处理程序 Jquery

javascript - Sequelize - 从未定义(但从关联创建)的表中获取

javascript - 如何为繁重的 JavaScript 应用程序有效使用 GPU