【问题标题】:changing attribute in jquery改变jQuery中的属性
【发布时间】:2012-03-05 00:22:23
【问题描述】:

我有一个结构如下,我想将可拖动属性更改为false。 我怎么能在jquery中做到这一点? 谢谢。

<div id="top1">
    <span id="s1" draggable="True">a</span>
    <span id="s2" draggable="True">b</span>
</div>

【问题讨论】:

    标签: jquery jquery-ui


    【解决方案1】:

    如果您只想,TRUE 标记为 false

    $("span[draggable='True']").attr('draggable', 'False');
    

    更改所有跨度的属性

    $("span").attr('draggable', 'False');
    

    【讨论】:

    • 如果 true 和 false 是唯一的选项,那么这两个选项的效果是一样的,因为结果所有 span 都将设置为 false。但是,如果有第三种选择,那么您是对的。
    • @Anthony 否则还有其他 spans 用于不同的操作,不能使用第二个代码
    • 我明白你的想法了。我以为您的意思是更改所有具有可拖动属性的跨度与所有可拖动属性设置为 false 的跨度,这最终是同一件事。
    【解决方案2】:
    $("#s1").attr("draggable", "False");
    

    【讨论】:

      【解决方案3】:

      这很容易做到。您将遍历所有跨度',然后使用 jquery 的 'attr' 方法来获取 'draggable' 属性并将其设置为 false

          $("span").each(function(){
              if($(this).attr("draggable")){
                  $(this).attr("draggable","false");
              }
          });  
      

      【讨论】:

      • 这不会将属性添加到尚未具有draggable 属性的跨度中吗?您不能使用attr() 一次性为所有选定元素设置属性,例如:$("span").attr("draggable","false"); 而不是使用each 循环?
      • 我已更新我的答案,仅当当前跨度具有“可拖动”属性时才将其设为假。
      • 但是为什么要使用ifeach?您可以只指定属性draggablespans,并使用以下方法将它们全部设置为相同的值:$("span[draggable]").attr("draggable","false"); 只是好奇您是否发现使用每个属性更有效或更快。
      • @Anthony。我不知道这种语法。谢谢你。
      【解决方案4】:

      attributes 上的jquery 文档所示,您可以使用attr() 方法设置元素的属性。在你的情况下:

      $("#s2").attr("draggable", "False");
      

      如果您想将所有具有draggable 属性的元素更改为false,您可以先使用attribute selector,如下所示:

      $('[draggable]').attr("draggable", "False");
      

      现在,如果您想反转这些值,以便所有当前为真变为假,所有当前为假变为真,您必须使用 attribute equals selector 将这两个集合存储到它们自己的变量中。否则,您将全部切换为假,并且不会将哪些已经为假的设置为真。所以像:

      var all_draggable =  $('[draggable="True"]');
      var all_not_draggable =  $('[draggable="False"]');
      
      all_draggable.attr("draggable", "False");
      all_not_draggable.attr("draggable", "True");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-11-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多