. 获取单个checkbox选中项的三种写法:

- 方法一:$("input:checkbox:checked").val()

- 方法二:$("input[type='checkbox']:checked").val();

- 方法三:$("input[name='ck']:checked").val();

2. 获取多个checkbox选中项的写法:

```javascript

$('input:checkbox').each(function() {

if ($(this).attr('checked') == true) {

alert($(this).val());

}

});

```

3. 设置第一个checkbox为选中值的写法:

```javascript

$('input:checkbox:first').attr('checked', 'checked');

// 或者

$('input:checkbox').eq(0).attr('checked', 'true');

```

4. 设置最后一个checkbox为选中值的写法:

```javascript

$('input:radio:last').attr('checked', 'checked');

// 或者

$('input:radio:last').attr('checked', 'true');

```

5. 根据索引值设置任意一个checkbox为选中值的写法:

```javascript

$('input:checkbox').eq(索引值).attr('checked', 'true'); // 索引值可以是0,1,2...等

// 或者

$('input:radio').slice(1,2).attr('checked', 'true');

```

6. 选中多个checkbox同时选中第1个和第2个的checkbox的写法:

一、通过选择器选取CheckBox:

1. 给CheckBox设置一个id属性,通过id选择器选取:

HTML代码:

```html

```

jQuery代码:

```javascript

$("#chkOne").click(function(){});

```

2. 给CheckBox设置一个class属性,通过类选择器选取:

HTML代码:

```html

```

jQuery代码:

```javascript

$(".myClass").click(function(){});

```

二、对CheckBox的操作:

以这段checkBox代码为例:

```html

```

1. 遍历checkbox用each()方法:

```javascript

$("input[name='box']").each(function(){});

```

2. 设置checkbox被选中用attr();方法:

```javascript

$("input[name='box']").attr("checked", true);

```

在HTML中,如果一个复选框被选中,对应的标记为 `checked="checked"`。但如果用jQuery的`attr()`方法获取时,会提示您是`true`而不是`checked`,所以判断`if("checked" == $("#id").attr("checked"))`是错误的,应该是`if(true == $("#id").attr("checked"))`。

要获取被选中的checkbox的值,可以使用以下代码:

```javascript

$("input[name='box'][checked]").each(function() {

if (true == $(this).attr("checked")) {

alert($(this).attr('value'));

}

});

```

或者:

```javascript

$("input[name='box']:checked").each(function() {

if (true == $(this).attr("checked")) {

alert($(this).attr('value'));

}

});

```

`$("input[name='box']:checked")`与`$("input[name='box']")`的区别在于前者只选择那些被选中的复选框,而后者则选择所有名为'box'的复选框。如果你尝试使用`$("input[name='box']")`也能成功获取到复选框,可能是因为页面上存在其他同名但未被选中的复选框。

请根据提供的内容完成内容重构,并保持段落结构:

1. 遍历未选中的checkbox并弹出其值:

```javascript

$("input[name='box']").each(function() {

if ($(this).attr('checked') == false) {

alert($(this).val());

}

});

```

2. 设置checkbox的value属性的值:

```javascript

$(this).attr("value", 值);

```

3. jQuery中$().each和$.each的区别:

在jQuery中,遍历对象和数组时经常会用到$().each()和$.each(),这两个方法是有区别的。$().each()主要用于DOM处理,例如处理多个类型为checkbox的input标签:

```javascript

$("input[name='ch']").each(function(i) {

if ($(this).attr('checked') == true) {

// 一些操作代码

}

});

```

回调函数可以传递参数,i表示遍历的索引。

而$.each()则更适用于遍历数组,例如:

```javascript

$.each([{ "name": "limeng", "email": "xfjylimeng" }, { "name": "hehe", "email": "xfjylimeng" }], function(i, n) {

alert("索引:" + i + ",对应值为:" + n.name);

});

```

参数i表示遍历索引值,n表示当前遍历的对象。

jQuery的each方法是一种非常方便的遍历对象属性的方法,它可以让我们不用再写复杂的for循环。在jQuery源码中,也有很多地方用到了each方法。实际上,jQuery的each方法是通过JavaScript中的call方法来实现的。下面我们简单介绍一下call方法。

call方法的作用是调用一个对象的一个方法,并以另一个对象替换当前对象。官方的说明是:“调用一个对象的一个方法,以另一个对象替换当前对象。”网上更多的解释是变换上下文环境,也有说是改变上下文this指针。call方法的语法如下:

```javascript

call([thisObj[,arg1[, arg2[, [,.argN]]]]])

```

其中,thisObj是一个可选参数,表示将被用作当前对象的对象;arg1、arg2等是可选参数,表示将被传递给方法的参数序列。

下面我们来看一个经典的例子:

```javascript

function add(a, b) {

alert(a + b);

}

function sub(a, b) {

alert(a - b);

}

add.call(sub, 3, 1);

```

在这个例子中,我们使用add函数来替换sub函数,并通过add.call(sub, 3, 1)实现了add(3, 1)的效果。运行结果为:alert(4)。

需要注意的是,在JavaScript中,函数实际上是对Function对象的引用。因此,当我们使用call方法时,实际上是在调用一个函数的apply方法。具体关于call方法的更多内容就不在这里展开了。

接下来,我们来看一下jQuery的each方法的一些常用用法:

```javascript

var obj = { one: 1, two: 2, three: 3, four: 4, five: 5 };

$.each(obj, function (key, val) {

alert(obj[key]);

});

```

这段代码会依次弹出obj对象的属性值:1、2、3、4、5。

下面是重构后的代码:

```javascript

var arr = ["one", "two", "three", "four"];

$.each(arr, function() {

alert(this);

}); // 输出结果分别为:one,two,three,four

var arr1 = [[1, 4, 3], [4, 6, 6], [7, 20, 9]];

$.each(arr1, function(i, item) {

alert(item[0]);

}); // 输出结果分别为:1、4、7

var obj = { one: 1, two: 2, three: 3, four: 4 };

$.each(obj, function(key, val) {

alert(obj[key]);

}); // 输出结果为:1、2、3、4

```