0

我正在获取选择 html 并想给它一个新名称,这就是我目前正在尝试的:

var sel = $("#rmFilesListSelect").html();
$(sel).attr({name: "item_files[fid-123]"});
$("#someTable tbody").append("<tr><td>" + sel + "</td></tr>");

但是,这并不像我期望的那样工作。相反,它会插入来自#rmFilesListSelect 的旧ID。我在这里想念什么?

编辑:我最终使用了几个评论的组合(包括来自https://stackoverflow.com/a/5259788/1231450的 outerHTML() ,由 bitfiddler 链接)

var sel = $("#rmFilesListSelect").clone();
$(sel).attr({name: "item_files[fid-123]"});
$("#someTable tbody").append("<tr><td>" + $(sel).outerHTML() + "</td></tr>");

非常感谢!

4

4 回答 4

1

尝试:

var sel = $("#rmFilesListSelect").html();
$(sel).wrapAll("<tr><td><div id='item_files[fid-123]'></div></td></tr>");
$("#someTable tbody").append("sel");

编辑:像这样的东西?

var sel = $("#rmFilesListSelect").clone();
$(sel).attr({id: 'new_id', name: 'new_name'});
$("#someTable tbody").append(sel);
于 2013-07-02T18:02:58.430 回答
1

您的第一行将变量 sel 设置为 html 而不是对象。在第 2 行中,您将它视为一个对象并尝试设置它的 name 属性。我认为您需要将第 1 行更改为:

var sel = $("#rmFilesListSelect");

和第 3 行到:

$("#someTable tbody").append("<tr><td>" + sel.html() + "</td></tr>");
于 2013-07-02T18:04:15.757 回答
0

用这个 :

var sel = $("#rmFilesListSelect").html();
// Above line gives the entire html of rmFilesListSelect element
// So better, you can select an element from that html to set the name as used like below line
$(sel).attr("name", "item_files[fid-123]") ;
$("#someTable tbody").append("<tr><td>" + sel + "</td></tr>");
于 2013-07-02T18:03:03.413 回答
0

一些例子:js

var jquery_selector = $("#test");
jquery_selector.attr("data-id", "data-test");
var input_value = jquery_selector.data("id"); //got value of extended data attribute
jquery_selector.append('<input type="text" value="' + input_value + '"/>');
jquery_selector.append(jquery_selector.html());

html

<div id="test">some text</div>

http://jsfiddle.net/ZU4BD/2/

希望它会有所帮助。

于 2013-07-02T18:12:39.147 回答