js遍历input 判断值是否存在另一个字符里 改变checked属性

本文介绍了一段JavaScript代码,该代码通过遍历页面上的input元素来检查其值是否存在于一个特定字符串中,并据此设置这些input元素的checked属性。
<script type="text/javascript">
	$(function(){
		var opt = document.getElementById("phList").getElementsByTagName("input")
		var i
		var phoneList = $("#ip_device").val();
		for(i=0;i<opt.length;i++){
			var temp = opt[i].value
			if(phoneList.indexOf(temp) >= 0){
				opt[i].checked="checked";
				
			}
		}
	});
</script>
js遍历input 判断值是否存在另一个字符里 改变checked属性
<think>我们讨论的是在Web开发中,当input元素的是数组时如何修改。根据引用内容,我们主要涉及几种情况: 1. 在Python中通过input输入数组(引用[1][5]) 2. 在微信小程序中动态修改对象数组中的(引用[2]) 3. 使用jQuery遍历input并获取数组(引用[3]) 4. 获取多选checkbox的并存入数组(引用[4]) 用户的问题:当input为数组时,改变的方法。 我们需要分情况讨论: 情况一:在Python中,用户通过输入字符串,然后分割成数组。修改数组就是修改列表元素。 情况二:在Web前端,input元素本身的字符串,但有时我们需要处理多个input(比如复选框)或动态生成的input数组,然后收集成数组。修改这些input,实际上是要修改每个input元素的value,或者修改整个数组。 根据用户引用的内容,我们重点讨论前端的情况,尤其是引用[2][3][4]中的场景。 具体来说,修改input数组的可以分为: 1. 修改单个input元素的(该input可能位于一个数组中) 2. 修改整个数组(即同时修改多个input) 下面我们分别说明: 一、修改单个input元素的(以微信小程序为例,引用[2]) 在微信小程序中,我们有一个数组arrayData,每个元素是一个对象,其中包含name属性。每个input绑定的是数组当前项的name属性。当输入时,通过事件对象获取当前输入的,然后更新数组对应索引的name属性。 示例代码(微信小程序): 在wxml中: <block wx:for="{{arrayData}}" wx:key="*this" wx:for-index="index"> <input value="{{item.name}}" data-index="{{index}}" bindinput="onInput" /> </block> 在js中: onInput: function(e) { // 获取输入的 let value = e.detail.value; // 获取当前输入框对应的索引 let index = e.currentTarget.dataset.index; // 修改数组arrayData中第index个元素的name属性 this.data.arrayData[index].name = value; // 更新数据 this.setData({ arrayData: this.data.arrayData }); } 二、修改整个数组(即同时修改多个input) 在jQuery中,我们可以遍历一组input元素,然后分别设置它们的。 例如,我们有一组input,它们的class为"input-item",现在要将它们全部设置为空字符串: $('.input-item').each(function() { $(this).val(''); }); 或者,如果我们有一个新的数组,想按顺序赋给这些input: var newValues = ["1", "2", "3"]; $('.input-item').each(function(index) { $(this).val(newValues[index]); }); 三、对于多选框(checkbox)组(引用[4]) 多选框组是多个checkbox,每个checkbox有一个。我们通常需要获取选中的checkbox的组成数组。修改多选框组的,实际上是设置每个checkbox的选中状态。 例如,我们有一个多选框组,name为"Fruit",现在我们想根据一个数组来设置哪些checkbox被选中: // 假设我们有一个数组selectedFruits,包含应该被选中的 var selectedFruits = [1, 3]; // 表示1和3的checkbox要选中 // 遍历所有的checkbox $('input[name="Fruit"]').each(function() { // 如果当前checkbox的在selectedFruits数组中,则选中,否则不选中 if (selectedFruits.indexOf($(this).val()) !== -1) { $(this).prop('checked', true); } else { $(this).prop('checked', false); } }); 四、在Python中,通过input输入数组后,修改数组的 在Python中,我们通过input得到字符串,然后分割成列表(数组)。修改列表就是修改列表的元素。 arr = input() # 例如输入 "1 2 3 4" nums = [int(n) for n in arr.split()] # [1,2,3,4] # 修改数组:将第一个元素改为10 nums[0] = 10 然后,如果我们想将修改后的数组输出,可以用join方法: # 将数字数组转换为字符串数组,然后用空格连接 new_arr = ' '.join(map(str, nums)) print(new_arr) # 输出 "10 2 3 4" 总结: 1. 在Web前端,修改input数组的,需要根据具体的场景(如普通input数组、多选框、小程序绑定等)采用不同的方法。 2. 在Python中,修改数组(列表)的就是修改列表元素。 请根据实际场景选择合适的方法。 注意:在微信小程序中,由于数据绑定机制,修改数组后必须使用setData来更新视图。 生成相关问题: 1. 微信小程序中如何动态添加数组元素? 2. 如何使用jQuery批量设置input? 3. 如何将多选框的设置为一个数组? 4. Python中如何将字符串数组转换为整数数组? 5. 在微信小程序中,如何删除数组中的某一项? </think> 当input元素的涉及数组结构时,修改方法需根据具体场景和框架特性处理。以下是不同技术栈下的解决方案: ### 一、原生JavaScript处理 1. **修改单个数组元素的** 通过索引定位后赋: ```javascript // 获取所有input元素 const inputs = document.querySelectorAll('input[name="arrayData"]'); // 修改第二个元素的 inputs[1].value = "newValue"; ``` 2. **批量修改多选框数组**(引用[4]) 遍历选中项并更新: ```javascript const newValues = [2, 3]; // 需要设置的选中 document.querySelectorAll('input[name="Fruit"]').forEach(input => { input.checked = newValues.includes(parseInt(input.value)); }); ``` ### 二、jQuery处理(引用[3]) 1. **遍历修改特定索引元素** ```javascript $('.blank').each(function(index) { if(index >= 18 && index <= 18 + totalLength - 1) { $(this).val(newArray[index - 18]); // 同步新数组 } }); ``` 2. **批量更新表单数组** ```javascript const newData = ["a", "b", "c"]; $('input.array-item').each(function(i) { $(this).val(newData[i]); }); ``` ### 三、微信小程序处理(引用[2]) 动态修改对象数组的特定属性: ```javascript Page({ data: { arrayData: [{name: "A"}, {name: "B"}] }, onInput(e) { const { index } = e.currentTarget.dataset; const value = e.detail.value; // 修改指定索引的name属性 this.setData({ [`arrayData[${index}].name`]: value }); } }) ``` ```xml <!-- WXML绑定 --> <input value="{{item.name}}" data-index="{{index}}" bindinput="onInput" /> ``` ### 四、Python终端输入(引用[1][5]) 修改已输入的数组: ```python # 输入空格分隔的数组 arr = input("输入数组: ") # 示例: "1 2 3" nums = [int(n) for n in arr.split()] # [1, 2, 3] # 修改第二个元素 nums[1] = 99 # [1, 99, 3] # 输出修改后数组 print(" ".join(map(str, nums))) # "1 99 3" ``` ### 关键点总结 1. **索引定位**:通过索引直接修改数组元素 2. **批量操作**:使用遍历方法同步整个数组 3. **框架特性**: - 微信小程序需用 `setData` 和模板语法 `array[${index}].prop` - jQuery 使用 `.each()` 和 `.val()` - 多选框需同步 `checked` 属性 4. **数据转换**:Python注意字符串与数字类型的转换[^1][^5] --- ### 相关问题 1. 如何动态添加新的元素到input数组? 2. 微信小程序中如何删除数组中的特定项? 3. 使用jQuery时如何避免遍历input?[^3] 4. Python如何验证用户输入的是有效数组? 5. 多选框如何实现全选/全不选功能?[^4] [^1]: Python通过`input()`获取字符串后需分割处理成数组[^1] [^2]: 微信小程序通过数据绑定和`setData`修改数组元素[^2] [^3]: jQuery遍历时可通过索引范围过滤空 [^4]: 多选框需遍历所有选项并设置`checked`属性 : Python的`input()`返回字符串需显式转换类型[^5]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值