获取输入的名称或ID,而不是输入值

时间:2011-10-28 09:18:24

标签: javascript jquery

简单的问题。

<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>

有什么想法吗?

4 个答案:

答案 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());
    }
    

无论如何,传递元素本身的引用仍然是最好的选择。