通过 jquery 为新创建的元素添加属性
Add attribute to newly created element by jquery
$(document).on('click', "#mybusi_radio", function(){
alert("Script test");
$(document).("#mybusi_radio").attr("checked", "checked");
});
我正在尝试将"选中","已检查"属性添加到输入无线电元素。 此元素在页面加载后由某些脚本创建。 警报正在工作。 如何向此输入元素添加属性。 请帮助
您可以使用
$(document).on('click', "#mybusi_radio", function () {
$(this).prop("checked", true);
});
而不是
$(document).("#mybusi_radio").attr("checked", "checked");
用
$("#mybusi_radio").prop("checked",true);
问题是选择器:
$(document).("#mybusi_radio").attr("checked", "checked");
首先,选择document
,然后提供一个参数 '#mybusi_radio'
但不提供应将该参数传递给的命名方法;因此存在语法错误。
您是否对其进行了编辑以提供适当的方法,例如 find()
,以提供:
$(document).find('#mybusi_radio').attr('checked', 'checked');
这将(似乎1(起作用。
这种方法的问题在于,您要在整个文档中搜索已在on()
方法的匿名函数中引用的元素:它是this
(DOM 节点(或$(this)
(包含 DOM 节点的 jQuery 对象(。
此外,您正在对click
事件做出反应,该事件将捕获对元素本身的点击,但不会对用户单击关联的<label>
元素做出反应;所以我建议改用change
事件来提供:
$(document).on('change', "#mybusi_radio", function () {
$(this).prop("checked", true);
});
或者,为了避免在 DOM 节点完全足以满足此用例时使用不必要的 jQuery:
$(document).on('change', "#mybusi_radio", function () {
this.checked = true;
});
但这有点奇怪,因为您有效地阻止了用户更改元素的checked
/非checked
状态,或者不必要地将其设置为checked
,而这将是元素的默认行为(假设它确实是类型 radio
的<input>
(。
重新阅读您的问题后,您似乎正在向页面添加一个元素(以某种方式(并希望将其初始状态设置为 checked
?如果这确实是用例,那么您可以简单地在元素创建时设置元素的状态(如果您选择向我们展示创建和附加相关元素的脚本,这将对您更有用(:
// creates an <input> element:
$('<input />', {
// sets the 'type' attribute/property to 'radio':
'type' : 'radio',
// sets the id of the <input> to
// 'mybusi_radio':
'id' : 'mybusi_radio',
// sets the 'checked' property to true
// Boolean (not a string):
'checked' : true
// appends the created <input> to the element
// identified by its id, of 'parentElementID':
}).appendTo('#parentElementID');
- 由于
attr()
不会专门更新元素的基础属性,因此当您可能会惊讶地发现已检查的无线电输入表现为未经检查的无线电输入时,您可能会发现checked
属性稍后不会在代码中更新/反映。因此,如果您使用的是支持prop()
2 的 jQuery 版本,最好使用prop()
。 - jQuery 1.6 及更高版本,因此您应该使用支持/实现
prop()
的 jQuery 版本。
引用:
-
appendTo()
. -
attr()
. -
find()
. -
prop()
.
相关文章:
- 如何将html元素添加到tampermonkey中
- 如何将html元素添加为生成的内容
- 如何向Selectize元素添加渲染和创建方法
- 向html选择元素添加选项
- 在d3中向DOM元素添加了图像,但现在它赢得了't过渡
- 如何将新的键/值对元素添加到现有数组
- 使用docment.createElement向元素添加选项
- ng重复向一个元素添加条件类
- 为li元素添加标题
- 向ckeditor中的多个元素添加内联样式
- Javascript 向影子根中的自定义元素添加函数
- 将伪元素添加到<文本区域>
- 如果类只包含一个特定数字,则向元素添加类
- DOM:将空元素添加到 DOM 和页面重排
- 是否有 jQuery 事件用于何时将元素添加到文档中
- 通过 ajax 使用自定义滚动条向元素添加内容
- 是否可以用D3将svg元素添加到开放层映射中
- 如何将元素添加到动态数组并排除现有元素
- 在AngularJS中将元素添加到作用域时,如何在所有设备上播放声音
- 将图像元素添加到<a>标签