0

好吧,

我认为这是一个随机的问题。我在这里搜索时找不到它。也许我的措辞是错误的。反正。这就是我需要的。我有一些使用该outerHTML方法从元素中获得的 html。它存储在一个变量中

objCodes.refDocs

现在只包含html。我需要做的是修改该变量中的 html。我需要更改其中一个 div 标签中的 id。div id 是随机的(由中继器创建的是 ASP.NET),所以我需要使用如下所示的选择器[id^=dvSearcher]。我已尝试执行以下操作,但对我的objCodes.refDocs html.

$(objCodes.refDocs).find('[id^=dvSearcher]').attr('id', 'newID');

有没有办法只修改该变量中的html?我可以通过使用 find 方法并将其设置为变量来提取元素。我只需要修改那一部分。

任何帮助将不胜感激:- 谢谢。

4

1 回答 1

1

这里的问题是您没有将新更新的字符串存储回变量中。

字符串不会被更新,你需要这样做。

//What you are doing

var objCodes = {
    refDocs : '<div><div id="dvSearcher"></div></div>'
};

var html = $(objCodes.refDocs);
html.find('[id^=dvSearcher]').attr('id', 'newID');
console.log("I was changed: ", html.html());  //shows updated code
console.log("My value: ", objCodes.refDocs);  //show orginal

//What you need to do
var updatedHTML = $("<div/>").html(objCodes.refDocs);
updatedHTML.find('[id^=dvSearcher]').attr('id', 'newID');
objCodes.refDocs = updatedHTML.html();
console.log("new string: ", objCodes.refDocs);  //updated html string

其他选项是将 DOM 存储到变量中,然后保留更改。

var objCodes2 = {
    refDocs : $('<div><div id="dvSearcher"></div></div>')
};
objCodes2.refDocs.find('[id^=dvSearcher]').attr('id', 'newID');
console.log("The DOMish way: ", objCodes2.refDocs.html());

JSFiddle

于 2013-07-10T19:06:36.060 回答