$(function(){
var z = document.body.children[0];
var x=$("li", z);
x.name="Johnny";
alert(x.prop(name));
});
x
应该是一个对象,其中包含ul
中第一个body
内的所有元素。
无论对象包含什么,我想添加一个带有值的属性,然后使用prop()
方法来显示它 - 但这似乎不起作用。那是为什么?
我看到一个包含以下内容的脚本:var $x = $("div");
- 如果它是jQuery对象,我是否必须将$
添加到变量名中?
答案 0 :(得分:1)
如果您想要第一个li
元素中的所有ul
元素,那么这应该可以解决问题:
var elements = $("ul:eq(0) li");
Here is a very simple example of this in action.
关于设置属性,您可以执行element.name = "test"
,它可以正常工作。但是你需要理解的是,这是在jquery集合对象上设置name
属性而不是在任何实际元素上。
然而,你可以做的是设置属性如下:
elements.prop("name", "test");
以及它的访问权限:
var name = elements.prop("name");//name will be "test"
正如我在评论中提到的,您不需要使用$
为变量添加前缀。但这有助于轻松查看哪些变量是JQuery对象。
答案 1 :(得分:1)
要选择页面内的第一个ul元素,您可以执行以下操作:
$("ul:first li")
这样您就可以选择页面中第一个列表中的所有行。
要在元素中存储任意数据,您可以使用方法数据,如下所示:
$("element").data('key', 'value');
并检索数据:
$("element").data('key');
More info, for the data method.
如果你真的想要添加一个属性你可以使用attr方法,它的工作方式与数据方法相同,但它会反映在DOM中。
答案 2 :(得分:0)
编号1. x
是一个jQuery对象,您在该实例中添加了name
属性,然后您使用name
,虽然它没有定义。
如果你想改变你用jQuery获得的元素的属性,方法是:
$('selector').prop('property', 'value');
$('selector').attr('attribute', 'value');
$('selector').get(index).property = "value";
数字2.不,你不必,$
前缀只是一个使代码更具可读性的惯例。
Is there any specific reason behind using $ with variable in jQuery
答案 3 :(得分:0)
使用@musefan回答中的选择器,您可以获取返回的集合,并使用attr()
方法为所选的每个项目添加属性和值。但是,我稍微修改了他的选择器以实际抓住那里的“所有”元素,(以防万一未来的访问者想知道)
var elements = $("ul:eq(0)").children();
elements.attr("attrName", value);
所以如果你想设置标题:
var elements = $("ul:eq(0)").children();
elements.attr("title", "Johnny");
您可能不想提醒这些值,浏览器可能会要求您停止在页面上发送警报......但如果您确实这样做了,那么您可以在此之后投入.each()
。
var elements = $("ul:eq(0)").children();
elements.attr("title", "Johnny").each(function(){
alert($(this).attr("title");
});