Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在jquery中更改属性_Jquery_Jquery Ui - Fatal编程技术网

在jquery中更改属性

在jquery中更改属性,jquery,jquery-ui,Jquery,Jquery Ui,我有一个如下的结构,我想把draggable属性改为false。 我如何在jquery中做到这一点? 谢谢 <div id="top1"> <span id="s1" draggable="True">a</span> <span id="s2" draggable="True">b</span> </div> A. B 这很容易做到。您可以在所有跨度上循环,然后使用jquery的“attr”方法获取“d

我有一个如下的结构,我想把draggable属性改为false。 我如何在jquery中做到这一点? 谢谢

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

A.
B

这很容易做到。您可以在所有跨度上循环,然后使用jquery的“attr”方法获取“draggable”属性并将其设置为false

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

这很容易做到。您可以在所有跨度上循环,然后使用jquery的“attr”方法获取“draggable”属性并将其设置为false

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

如上的jquery文档所示,可以使用
attr()
方法设置元素的属性。就你而言:

$("#s2").attr("draggable", "False");
如果要将属性为
draggable
的所有元素更改为false,可以使用第一个,如下所示:

$('[draggable]').attr("draggable", "False");
现在,如果您想反转这些值,以便所有当前为true的值都变为false,所有当前为false的值都变为true,那么您必须使用。否则,您将全部切换为false,并且不会将任何已经为false的设置为true。比如:

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

all_draggable.attr("draggable", "False");
all_not_draggable.attr("draggable", "True");

如上的jquery文档所示,可以使用
attr()
方法设置元素的属性。就你而言:

$("#s2").attr("draggable", "False");
如果要将属性为
draggable
的所有元素更改为false,可以使用第一个,如下所示:

$('[draggable]').attr("draggable", "False");
现在,如果您想反转这些值,以便所有当前为true的值都变为false,所有当前为false的值都变为true,那么您必须使用。否则,您将全部切换为false,并且不会将任何已经为false的设置为true。比如:

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

all_draggable.attr("draggable", "False");
all_not_draggable.attr("draggable", "True");
如果您只想,则将正确的标记为false

$("span[draggable='True']").attr('draggable', 'False');
更改所有跨度的属性

$("span").attr('draggable', 'False');
如果您只想,则将正确的标记为false

$("span[draggable='True']").attr('draggable', 'False');
更改所有跨度的属性

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

这是否会将属性添加到尚未具有可拖动属性的范围中?您不能使用
attr()
一次设置所有选定元素的属性,例如:
$(“span”).attr(“draggable”,“false”)
而不是使用
each
循环?我已经更新了答案,仅当当前跨度具有“draggable”属性时才将其设为false。但是为什么要使用
if
each
?您只能指定属性
draggable
span
,并使用以下命令将所有属性设置为具有相同的值:
$(“span[draggable]”)。attr(“draggable”,“false”)只是好奇你是否发现使用每一种方法更有效或更快。@Anthony。我不知道这个语法。谢谢。这会不会将属性添加到尚未具有
draggable
属性的范围中?您不能使用
attr()
一次设置所有选定元素的属性,例如:
$(“span”).attr(“draggable”,“false”)
而不是使用
each
循环?我已经更新了答案,仅当当前跨度具有“draggable”属性时才将其设为false。但是为什么要使用
if
each
?您只能指定属性
draggable
span
,并使用以下命令将所有属性设置为具有相同的值:
$(“span[draggable]”)。attr(“draggable”,“false”)只是好奇你是否发现使用每一种方法更有效或更快。@Anthony。我不知道这个语法。谢谢。如果只有true和false两个选项,那么这两个选项的效果相同,因为所有跨距都将因此设置为false。但是,如果有第三个选项,那么您是对的。@Anthony或者其他的
span
用于不同的操作,您不能使用第二个代码。我明白您的想法了。我认为您的意思是使用Dragable属性更改所有跨距,而不是使用Dragable属性设置为false的所有跨距,这最终是相同的。如果true和false是唯一的选项,那么这两个选项都具有相同的效果,因为所有跨距都将因此设置为false。但是,如果有第三个选项,那么您是对的。@Anthony或者其他的
span
用于不同的操作,您不能使用第二个代码。我明白您的想法了。我以为你的意思是用draggable属性更改所有跨距,而不是将draggable属性设置为false的所有跨距,这最终也是一样的。