(第二天)HTML5新增元素、属性(下)及Range对象(上)

(第二天)HTML5新增元素、属性(下)及Range对象(上),第1张


<figure>
<figcaption>这是一群美女</figcaption>
<img src="1jpg" alt="" width="50">
<img src="2jpg" alt="" width="50">
<img src="3jpg" alt="" width="50">
</figure>


<body>
<script>
function AD() {
// var txt = documentgetElementById("txt");
// 上方方法与下方方法结果相同,只是不同获取input节点的方法。
var txt = documentforms[0]['txtName'];
var userAction = txtselectionDirection;
alert(userAction);
}
</script>
<form>
<input type="text" id="txt" name="txtName">
<input type="button" value="获取用户选择文字方向" onclick="AD()">
</form>
</body>


<body>
<script>
function deleteContents(mode) {
// 创建一个Range对象
var rangeObj = documentcreateRange();
var demoArea = documentgetElementById("demo");
if (mode) { / 如果为true,表示删除整个元素 /
// 选取整个Node
rangeObjselectNode(demoArea);
rangeObjdeleteContents();
} else { / 如果为false,表示仅删除元素中的内容 /
// 选择Node中的Contents
rangeObjselectNodeContents(demoArea);
rangeObjdeleteContents();
}
}
</script>
<div id="demo" style="background-color: #f00; width: 300px; height: 300px;">这是一个Range方法DEMO</div>
<button onclick="deleteContents(true)">删除整个元素</button>
<button onclick="deleteContents(false)">仅删除元素中的内容</button>
</body>

你 new 出来的对象不是同一个对象
这种情况不是向List中添加多个元素,而是你在容器中生成了多个List
一个对象只能New一次,在此的话就不是同一个对象了
你想要显示多个元素。 直接把元素放在数组中 ,只写一句
Jlist jlist=new Jlist(a)就把jlist添加到窗体中就Ok了
如果你把Jlist jlist=new Jlist(a)这句话放在 按钮事件中,你试想下,你每次按下后,都要执行Jlist jlist=new Jlist(a)这句话,我们是不是创建了多个对象那?如果你只是单纯的想通过按钮来添加数组中的元素
Jlist jlist=new Jlist(); //定义成为类成员 放在按钮事件的外部
int i=0 ; //定义成为类成员 放在按钮事件的外部
按钮事件中代码可以这么写
jlistadd(a[i]);
i++; //每次单击一次按钮 添加一个元素

C#NET的集合主要位于SystemCollections和SystemCollectionsGeneric(泛型)这两个namespace中。

1、SystemCollections

比如ArrayList,其Add(继承自接口IList)和AddRange方法可用于想集合中添加元素。

代码示例:

(1)Add:添加单个元素

ArrayList myAL = new ArrayList();
myALAdd( "The" );
myALAdd( "quick" );
myALAdd( "brown" );
myALAdd( "fox" );

(2)AddRange:添加实现了ICollection接口的一个集合的所有元素到指定集合的末尾

ArrayList myAL = new ArrayList();
myALAdd( "The" );
myALAdd( "quick" );
myALAdd( "brown" );
myALAdd( "fox" );
Queue myQueue = new Queue();
myQueueEnqueue( "jumped" );
myQueueEnqueue( "over" );
myQueueEnqueue( "the" );
myQueueEnqueue( "lazy" );
myQueueEnqueue( "dog" );
myALAddRange( myQueue );

2、SystemCollectionsGeneric

泛型同样也有Add(继承自ICollection<T>)和AddRange两个方法。

代码示例:

(1)Add:添加单个元素

List<string> dinosaurs = new List<string>();
dinosaursAdd("Tyrannosaurus");
dinosaursAdd("Amargasaurus");
dinosaursAdd("Mamenchisaurus");
dinosaursAdd("Deinonychus");
dinosaursAdd("Compsognathus");

(2)AddRange:添加实现了接口IEnumerable<T>的一个泛型集合的所有元素到指定泛型集合末尾

string[] input = { "Brachiosaurus", "Amargasaurus", "Mamenchisaurus" };
List<string> dinosaurs = new List<string>(input);
dinosaursAddRange(dinosaurs);

参考资料:

>

>python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素 集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算
sets 支持 x in set, len(set),和 for x in set。作为一个无序的集合,sets不记录元素位置或者插入点。因此,sets不支持 indexing, slicing, 或其它类序列(sequence-like)的 *** 作。
下面来点简单的小例子说明把。
>>> x = set('spam')
>>> y = set(['h','a','m'])
>>> x, y
(set(['a', 'p', 's', 'm']), set(['a', 'h', 'm']))
再来些小应用。
>>> x & y # 交集
set(['a', 'm'])
>>> x | y # 并集
set(['a', 'p', 's', 'h', 'm'])
>>> x - y # 差集
set(['p', 's'])
记得以前个网友提问怎么去除海量列表里重复元素,用hash来解决也行,只不过感觉在性能上不是很高,用set解决还是很不错的,示例如下:
>>> a = [11,22,33,44,11,22]
>>> b = set(a)
>>> b
set([33, 11, 44, 22])
>>> c = [i for i in b]
>>> c
[33, 11, 44, 22]
很酷把,几行就可以搞定。
18 集合

集合用于包含一组无序的对象。要创建集合,可使用set()函数并像下面这样提供一系列的项:
s = set([3,5,9,10]) #创建一个数值集合
t = set("Hello") #创建一个唯一字符的集合
与列表和元组不同,集合是无序的,也无法通过数字进行索引。此外,集合中的元素不能重复。例如,如果检查前面代码中t集合的值,结果会是:
>>> t
set(['H', 'e', 'l', 'o'])
注意只出现了一个'l'。
集合支持一系列标准 *** 作,包括并集、交集、差集和对称差集,例如:
a = t | s # t 和 s的并集
b = t & s # t 和 s的交集
c = t – s # 求差集(项在t中,但不在s中)
d = t ^ s # 对称差集(项在t或s中,但不会同时出现在二者中)
基本 *** 作:
tadd('x') # 添加一项
supdate([10,37,42]) # 在s中添加多项
使用remove()可以删除一项:
tremove('H')
len(s)
set 的长度
x in s
测试 x 是否是 s 的成员
x not in s
测试 x 是否不是 s 的成员
sissubset(t)
s <= t
测试是否 s 中的每一个元素都在 t 中
sissuperset(t)
s >= t
测试是否 t 中的每一个元素都在 s 中
sunion(t)
s | t
返回一个新的 set 包含 s 和 t 中的每一个元素
sintersection(t)
s & t
返回一个新的 set 包含 s 和 t 中的公共元素
sdifference(t)
s - t
返回一个新的 set 包含 s 中有但是 t 中没有的元素
ssymmetric_difference(t)
s ^ t
返回一个新的 set 包含 s 和 t 中不重复的元素
scopy()
返回 set “s”的一个浅复制
请注意:union(), intersection(), difference() 和 symmetric_difference() 的非运算符(non-operator,就是形如 sunion()这样的)版本将会接受任何 iterable 作为参数。相反,它们的运算符版本(operator based counterparts)要求参数必须是 sets。这样可以避免潜在的错误,如:为了更可读而使用 set('abc') & 'cbs' 来替代 set('abc')intersection('cbs')。从 231 版本中做的更改:以前所有参数都必须是 sets。
另外,Set 和 ImmutableSet 两者都支持 set 与 set 之间的比较。两个 sets 在也只有在这种情况下是相等的:每一个 set 中的元素都是另一个中的元素(二者互为subset)。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13361775.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-21
下一篇 2023-07-21

发表评论

登录后才能评论

评论列表(0条)

保存