Javascript 在所有浏览器中显示/隐藏DOM元素

Javascript 在所有浏览器中显示/隐藏DOM元素,javascript,jquery,html,jquery-ui,Javascript,Jquery,Html,Jquery Ui,我有一些非常简单的东西,但我不能使它在Webkit和Mozilla中正常工作 这是我的HTML <li style="padding-bottom: 10px;" class='product'> <span class ='handle' style="cursor:move; float:left; margin-top:40px; margin-right:8px; margin-bottom:30px; display:none;"> &l

我有一些非常简单的东西,但我不能使它在Webkit和Mozilla中正常工作

这是我的HTML

<li style="padding-bottom: 10px;" class='product'>
  <span class ='handle' style="cursor:move; float:left; margin-top:40px; margin-right:8px; margin-bottom:30px; display:none;">
          <%= image_tag "page/arrow.png"%>
  </span>

<table >
    <tr style="border:5px; solid: #444">
      <td class="product_contents" style="vertical-align: top;" >
        <div class="product_contents" style="width: 480px; font-size: 100%; font-weight: bold; color: #333; margin-bottom: 10px; word-wrap: break-word; overflow: auto;">
         STUFF HERE
        </div>
        <p class="product_contents" style="width: 480px; font-size: 93%; line-height: 150%; word-wrap: break-word; overflow: auto;">
      MORE STUFF HERE
        </p>
      </td>
    </tr>
  </table>
</li>
这里没有什么特别的东西,它的工作原理和我在Firefox中所期望的一样。控制柄中的图像显示在左侧,它将内容向右移动,内容也会更改颜色和大小以匹配图像。完美的 但在Webkit中,它改变了颜色和大小,但没有位移。我想要实现的是非常基本的,有更好的方法吗?
我可以使用Jquery,但我不能使用任何插件

您可以通过使用CSS display属性并将其设置为none来隐藏元素


我不确定我是否正确理解了您的问题,但我建议尝试jQuery的显示/隐藏功能:

$(this).find(".handle").show();
$(this).find(".handle").hide();

这一款在Firefox中对我有效,但在Conkeror(令人惊讶)中失败,在SRWare Iron(基于Chrome的浏览器)中失败


问题似乎与表位于
  • 元素中这一事实有关。出于某种原因,Firefox将此表视为内联元素,而其他浏览器视为块元素。由于它是一个块元素,因此表格会被推到下一行,而不会被移动,因为句柄位于上一行。将表的显示样式更改为
    内联表
    解决了我的问题。

    这对我在Chrome上很有效:。如果将类添加到主题元素并修改类的样式规则,这可能会更有效。如果必须使用选择器,则至少获取一次对象并重新使用它:
    var el=$(此选项);el.查找(…);el.css(…)等等。它在Chrome中对我不起作用。我试过你的小提琴,文字上出现了“图像”。如果你尝试使用firefox,你会看到它是如何出现在左边的。根据我的测试,完全不同,在Firefox4、Chrome、IE9和Opera中的工作方式相同。在Safari中,它出现在左侧。再说一次,我还没有试过用真实的图像。你说的“…在Mozilla中不能正常工作…”是什么意思?…它在Firefox中可以正常工作…”?如果我写的是“在Mozilla中不能正确工作”,我的意思是在Mozilla中正确工作。Firefox运行正常,我对chrome有问题。事实上,在jQuery中,它更像是
    $(…).get(0).style
    。此外,为了让代码正常工作,您需要两个名为
    none
    block
    的变量,其中包含的字符串的内容与放置在其中的相应变量的名称相同。。。或者您可以使用
    “无”
    “块”
    而不是
    。对此表示抱歉。我只是忘了引用。
    $("element").style.display = "none"; // hide element
    
    $("element").style.display = "block"; // show element (or inline)
    
    $(this).find(".handle").show();
    $(this).find(".handle").hide();