Javascript 这个小小的jQuery代码似乎不起作用。。有人知道为什么吗?

Javascript 这个小小的jQuery代码似乎不起作用。。有人知道为什么吗?,javascript,jquery,refactoring,Javascript,Jquery,Refactoring,如果我运行它。它不返回任何错误。在firebug中,它确实在DOM中选择了适当的元素 如果我把它拆开,做这样的事情: $('img[hspace]').css('marginLeft', ($('img[hspace]').attr('hspace') / 2) + 'px') 这很有效 这是整个怪物 $('img[hspace]').each(function(el){ var pixels = parseInt($(el).attr('hspace')); if(isNaN

如果我运行它。它不返回任何错误。在firebug中,它确实在DOM中选择了适当的元素

如果我把它拆开,做这样的事情:

$('img[hspace]').css('marginLeft', ($('img[hspace]').attr('hspace') / 2) + 'px')
这很有效

这是整个怪物

$('img[hspace]').each(function(el){
    var pixels = parseInt($(el).attr('hspace'));
    if(isNaN(pixels) || pixels < 1)
        pixels = 0;
    else
        pixels = pixels / 2;
    $(el).css('marginLeft', pixels + 'px')
         .css('marginRight', pixels + 'px')
         .removeAttr('hspace');
});
$('img[hspace]')。每个(函数(el){
var pixels=parseInt($(el).attr('hspace');
如果(isNaN(像素)| |像素<1)
像素=0;
其他的
像素=像素/2;
$(el).css('marginLeft',像素+'px')
.css('marginRight',像素+'px')
.removeAttr('hspace');
});
更新

我的HTML:

 `<div class='grid_7'>
        <p><p>
            this is mys</p>
        <p>
            <img align="left" alt="dude its me" border="10" height="168" hspace="30" src="http://s3.amazonaws.com/hq-photo/root/system/photos/6187/resized_orig/photo.jpg" vspace="10" width="130" /></p>
        <p>
            this is as good as it gets</p>

        <p>
            this isasd</p>
        <p>
            sdfasdfasdfasdfasd</p>
        <p>
            asdfasdfasdf</p>
        <p>

            asdfa</p>
        <p>
            sdfasdfasdf</p>
        <p>
            &nbsp;</p>
        <p>
            &nbsp;</p>
        <p>

            &nbsp;</p>
        <p>
            &nbsp;</p>
        <p>
            &nbsp;</p>
        <p>
            <img align="right" alt="it's also me" border="50" height="168" hspace="50" src="http://s3.amazonaws.com/hq-photo/root/system/photos/6187/resized_orig/photo.jpg" vspace="50" width="130" /></p></p>
      </div>`
`

我是迈斯

这是最好的

这是isasd

SDFASDFASDFASD

asdfasdfasdf

asdfa

sdfasdfasdf

`
每个函数的名称。您可能希望执行
$(this)
而不是
$(el)
el
引用集合中元素的索引,而不是元素。或者

  • 向函数添加第二个参数,这将是元素
  • 在函数内部使用此<代码>此引用元素

尝试将$(el)更改为$(此项)我建议也将基数传递给
parseInt
以实现无歧义性-
函数(idx,el){}
也应该做到这一点。。。有趣。在我使用的示例中,
这个
不起作用,但是
(idx,el)
起作用。说到工作,我的意思是它毫无差错地通过了。但没有对我的DOM进行任何实际更改。有人知道为什么吗?我正在解析的内容来自所见即所得,因此到处都是
/n
。同样,如果我只是在没有循环的情况下运行它,它至少会以一个为目标并成功地移动它。