0

我的 html 存储在一个变量中,我只是从该变量中找到 div 并设置 css,但一切都不起作用。这是我的代码

sHtml = $(sHtml).find('#frm').html();
sHtml = $(sHtml).find('#acloginpod').css({ 'width': xWidth + 'px' });  
$sHtml = $(sHtml);

我的第三行有什么问题。我试图从 html 中找到 div acloginpod,它存储在 sHtml 变量中,宽度存储在 xWidth 变量中。我认为我的代码中有问题,但无法找到它。所以请帮我纠正代码。谢谢

4

2 回答 2

2

问题是您在代码中混合了 HTML 字符串和 DOM 对象(包装到 jQuery 对象中)。

有了这条线...

$(sHtml).find('#acloginpod').css({ 'width': xWidth + 'px' });

...您将带有 HTML (sHtml) 的字符串转换为 DOM 对象,然后在其层次结构中找到一些元素,然后更改其属性。

但在这一行...

$sHtml = $(sHtml);

...您只是将所有更改扔掉,因为您再次将原始字符串转换为 DOM 对象。

我想知道你为什么不...

  $sHtml = $(sHtml);
  $sHtml.find('#acloginpod').css({ width: xWidth + 'px' });

... 一直在使用 jQuery 对象工作(和传输)。

于 2012-10-01T11:25:34.193 回答
1

我在您的代码中包含了注释:

sHtml = $(sHtml).find('#frm').html(); // Returns a string: the .innerHTML of the element with ID frm
sHtml = $(sHtml).find('#acloginpod').css({ 'width': xWidth + 'px' }); // Returns a jQuery object of the element with ID #acloginpod
$sHtml = $(sHtml); // No need to do that sHtml is already a jQuery object
于 2012-10-01T11:26:55.240 回答