简单的问题。
<input type="text" value="Some text" name="thisname" id="thisid" />
如何获取正在使用的ID或名称的名称,而不是值。 很明显,这个文本框的值是“Some text”。但我想要的是现在使用的id和名称的名称。
更清楚......我想要“thisid”或“thisname”。
查看我的代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="js/jquery.js"></script>
<script>
$(document).ready(function() {
$("p").parent(".selected").css("background", "#FF8877");
});
function add(name) {
$("#" + name).parent().clone().insertAfter($("#" + name).parent());
}
</script>
</head>
<body>
<div><p>Hello</p></div>
<div class="selected"><p name="name" id="name" onclick="add(this.name)">Hello Again</p></div>
</body>
</html>
有什么想法吗?
答案 0 :(得分:18)
因此,假设您已将var input
设置为元素:
input.value
为您提供值input.id
为您提供了身份证明input.name
为您提供名称答案 1 :(得分:3)
如果您使用的是jQuery
$(this).attr('name'); //for name
$(this).attr('id'); //for ID
答案 2 :(得分:2)
如果您使用jquery,您可以执行以下操作:
$('#thisid').attr('name');
答案 3 :(得分:1)
查看您编辑过的问题。你做错了。
传递对元素的引用要简单得多,而不是它的名称。
JS:
function add(element) {
$(element).parent().clone().insertAfter($(element).parent());
}
HTML:
<p name="name" id="name" onclick="add(this)">Hello Again</p>
如果您想知道为什么您的代码不起作用:
“id”和“name”是2个不同的属性。在CSS中(因此在jquery中),您通常按ID选择元素,使用以下语法:#idOfElement
。如果您真的需要,可以按名称选择一个或多个元素:*[name="nameOfElement"]
。
这为您提供了两个选项:
将ID传递给您原来的add
函数,而不是名称:
<p name="name" id="name" onclick="add(this.id)">Hello Again</p>
更改添加功能以改为使用名称
function add(name) {
$('*[name="' + name + '"]').parent().clone().insertAfter($('*[name="' + name + '"]').parent());
}
无论如何,传递元素本身的引用仍然是最好的选择。