【发布时间】:2011-11-07 02:36:04
【问题描述】:
如何在不使用 id 或 class 的情况下使用 jquery 按名称获取 html 元素?有什么办法吗?
【问题讨论】:
-
举一个你想要在其中检索对象的 HTML 示例。保存“按名称”时是否询问“名称”属性?
如何在不使用 id 或 class 的情况下使用 jquery 按名称获取 html 元素?有什么办法吗?
【问题讨论】:
应该知道,给出的唯一正确答案是在属性值周围包含引号的答案,即。
$("[name='value']")
在值周围包含引号是强制性要求,请参阅:http://api.jquery.com/attribute-equals-selector/
如果您在引用节点名称或“标签”时使用“名称”,则只需按该字符串进行选择:
$("div")
$("a")
$("p")
$("input")
$("body")
【讨论】:
使用这个:
$('[name=thename]');
注意:出于性能考虑,最好指定标签名称。因此,如果您正在寻找名称为“冬天”的图像,您将使用这个:
$('img[name=winter]');
【讨论】:
不确定您是指标签名称还是命名属性。所以这里都是-
属性等于选择器 [name="value"]
http://api.jquery.com/attribute-equals-selector/
或 元素选择器(“元素”)
http://api.jquery.com/element-selector/
// name attribute selector
$('[name=whatever]').each(function(index) {
alert(index);
// and of course depending on your element utilize $(this).doSomethingCool
});
// tag name selector for all h1 tags
$('h1').each(function(index) {
alert(index);
// and of course depending on your element utilize $(this).doSomethingCool
});
【讨论】:
如果你指的是 name 属性,就是这样:
$('[name="value"]')
如果你指的是元素名称,那么它是这样的:
$('ul')
【讨论】:
$('tagName')...
为<tagName />
或
$('[name="attributeName"]')...
为<input name="attributeName" />
jQuery 选择器的工作方式类似于 CSS 选择器。
【讨论】:
$('[name="attributeName"]').val();,或者如果您收集多个输入的同名值$('[name="attributeName\[\]"]').serialize();,请使用序列化
在 jQuery 中,除了 id 和 class 之外,您还可以使用很多东西。 CSS3 selector specification 充满了其他你可以使用的东西,我相信 jQuery 甚至还有更多的东西。例如,您可以使用标签类型、属性值、层次结构中的位置。这些都是有效的 jQuery 选择器对象:
$("div")
$("div span")
$("[name=nyName]");
$("div span [name=nyName]");
$("ul li [name=nyName]");
在许多情况下,使用基于标签类型、id 值和类名的选择器可以获得更好的性能,因为许多浏览器都支持在本机代码中搜索。
【讨论】:
可能是这样的:$('div[name="element_name"]')。
或其他元素类型,如:
img:$('img[name="element_name"]')
td:$('td[name="element_name"]')
...
【讨论】:
【讨论】:
要获取值,我们可以使用多个属性,其中之一是名称属性。例如
$("input[name='nameOfElement']").val();
【讨论】: