我有一个包含<input ...
字段的jQuery DataTables表。根据用户在同一页面上的输入,我需要对<input ...
的属性进行一些更改。该字段有一个id属性,但在需要进行此属性更改时未知。jQuery - 如何使用HTML字符串作为控制元素
使用DataTables API我找到了包含输入字段的行索引。我也知道柱等我能够找回这样的输入域:
var inputfield = $('#oTable').DataTable().cell(row, column).data();
这导致inputfield
包含字符串:
<input value="0" id="someid" color="red" size="large" type="text">
我想用jQuery来访问属性这种控制是这样的:
inputfield.attr("color", "black");
但是这不起作用。有没有服用的HTML字符串,并使用它,就好像它是这样的访问控制字段一个简单的方法:
var inputfield = $('#someid');
inputfield.attr("color", "black");
难道还有比解析视为纯字符串,这样做其他更简单的方法?
EDIT
如上所述,我使用jQuery数据表并执行用于含有的红色值的颜色属性的所有表中的行的检索:
var color = "red";
rows = dpTable.fnFindCellRowIndexes('color="' + color + '"');
行是包含数组包含color="red"
的行的索引和这个工作。返回值的示例为rows = [2, 5, 12]
现在我想更改每行单元格中<input ...
字段的几个属性。所以我这样做:
$.each(rows, function (index, value) {
var inputfield = $('#oTable').DataTable().cell(value, 1).data();
var newHtml = $(inputfield);
newHtml.attr("color", "TEST");
alert($(newHtml).attr("color"));
});
以上alert()
返回TEST
根据需要,但在数据表控制字段没有更新。所以我需要将newHtml
转换回字符串,使用DataTables API替换单元格内容,然后使用DataTables .draw()函数更新表格。
然后我会如何将newHTML切换回字符串?我正在使用DataTables,属性没有改变。我必须将字符串放回到表格单元格中并发出一个draw()。 – rwkiii 2014-10-12 13:28:30
是否要更改颜色属性?什么是draw()?你在问如何访问属性,这是一种方法。请更具体的你想要做什么 – 2014-10-12 13:35:44
我正在改变jQuery DataTables中单元格的值。 inputfield的值是一个字符串,因为DataTables通过搜索API返回它。我需要更改一些属性,然后将其作为字符串放回DataTables单元格中。我看到你的jsfiddle工作正常。我试图理解为什么它不适合我。我尝试在DataTables上发出draw()函数,但是这并没有解决它。我相信你的代码是正确的。 – rwkiii 2014-10-12 13:44:04