我有一个包含<input ...
字段的jQuery DataTables表。根据同一页面上的用户输入,我需要对<input ...
的属性进行一些更改。该字段具有id属性,但在进行此属性更改时尚不知道。
使用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");
除了解析为普通字符串之外,还有更简单的方法吗?
修改
如上所述,我正在使用jQuery DataTables并搜索包含值为red的color属性的所有表行:
var color = "red";
rows = dpTable.fnFindCellRowIndexes('color="' + color + '"');
Rows是一个包含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
,但DataTables中的控制字段不会更新。所以我需要将newHtml
转换回字符串,使用DataTables API替换单元格内容,然后使用DataTables .draw()函数更新表格。
答案 0 :(得分:1)
不确定我是否理解,但您可以尝试
var html = '<input value="0" id="someid" color="red" size="large" type="text">';
$(html).attr("color", "black")[0].outerHTML;
// '<input value="0" id="someid" color="black" size="large" type="text">'
答案 1 :(得分:1)
您可以像http://jsfiddle.net/0tag89yf/1/
一样访问变量的属性var inputfield = '<input value="0" id="someid" color="red" size="large" type="text">';
var newHTML = $(inputfield);
var color = newHTML.attr('color');
alert(color);
答案 2 :(得分:0)
我们可以将字符串解析为元素,然后获取其ID,然后在DOM中找到该ID。
var inputfield = $('#' + $('<input value="0" id="someid" color="red" size="large" type="text">').attr('id'));