Javascript 在jQuery中编辑对象
Javascript 在jQuery中编辑对象,javascript,jquery,object,Javascript,Jquery,Object,x应该是包含正文中第一个ul中所有元素的对象。 不管对象包含什么,我都希望添加一个带有值的属性,然后使用prop()方法来显示它-但这似乎不起作用。为什么呢 我看到一个包含以下内容的脚本:var$x=$(“div”)-如果变量名是jQuery对象,我是否必须向它添加$ 第一x是一个jQuery对象,您向该实例添加了一个name属性,然后使用name,尽管它没有定义 如果要更改使用jQuery获得的元素的属性,方法如下: $(function(){ var z = document.bod
x
应该是包含正文中第一个ul
中所有元素的对象。
不管对象包含什么,我都希望添加一个带有值的属性,然后使用prop()
方法来显示它-但这似乎不起作用。为什么呢
我看到一个包含以下内容的脚本:var$x=$(“div”)代码>-如果变量名是jQuery对象,我是否必须向它添加$
第一x
是一个jQuery对象,您向该实例添加了一个name
属性,然后使用name
,尽管它没有定义
如果要更改使用jQuery获得的元素的属性,方法如下:
$(function(){
var z = document.body.children[0];
var x=$("li", z);
x.name="Johnny";
alert(x.prop(name));
});
2号。不,您不必这样做,$
前缀只是一种使代码更具可读性的约定。
如果您希望在第一个ul
元素中包含所有li
元素,那么这应该可以做到:
$('selector').prop('property', 'value');
$('selector').attr('attribute', 'value');
$('selector').get(index).property = "value";
关于设置属性,您可以执行element.name=“test”
,它将正常工作。但您需要了解的是,这是在jquery集合对象上设置name
属性,而不是在任何实际元素上
但是,您可以这样设置属性:
var elements = $("ul:eq(0) li");
访问权限如下所示:
elements.prop("name", "test");
正如我在评论中提到的,您不需要在变量前面加$
。但这有助于轻松查看哪些变量是JQuery对象。要选择页面中的第一个ul元素,可以执行以下操作:
var name = elements.prop("name");//name will be "test"
这样,您将选择页面第一个列表中的所有行
要在元素中存储任意数据,可以使用方法data,如下所示:
$("ul:first li")
以及检索数据:
$("element").data('key', 'value');
如果确实要添加属性,可以使用attr方法,其工作方式与data方法相同,但会反映在DOM中。使用@musefan answer中的选择器,可以获取返回的集合,并使用attr()
方法为每个选定项添加属性和值。然而,我已经稍微修改了他的选择器,以实际获取其中的“所有”元素(以防万一未来的访问者会怀疑)
因此,如果要设置标题:
var elements = $("ul:eq(0)").children();
elements.attr("attrName", value);
您可能不想提醒这些值,浏览器可能会要求您停止允许页面上的提醒。。。但是如果你真的这么做了,那么你可以在那之后加入一个.each()
var elements = $("ul:eq(0)").children();
elements.attr("title", "Johnny");
简单地回答第二点,不,你不需要这样做。它帮助一些人跟踪它是jquery对象的事实
var elements = $("ul:eq(0)").children();
elements.attr("title", "Johnny");
var elements = $("ul:eq(0)").children();
elements.attr("title", "Johnny").each(function(){
alert($(this).attr("title");
});