2011-10-28 80 views
-2

簡單的問題。獲取輸入的名稱或標識,而不是輸入值

<input type="text" value="Some text" name="thisname" id="thisid" /> 

如何獲取正在使用的id或名稱的名稱,而不是值。 很明顯,這個文本框的價值是「一些文本」。但是我想要的是現在使用的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> 

任何想法?

+1

id是什麼名字?他們是兩個不同的屬性..請檢查你的問題.. – AlQafir

+0

它看起來像你試圖創建一個問候,如「你好再Keesher」,是嗎?您是否試圖在HTML屬性'name'和'id'中存儲用戶名或用戶ID?如果是這樣,這是巧合的,你試圖存儲某人的名字,還有一個名爲'name'的HTML屬性。您應該將用戶的姓名或ID存儲在'value'屬性中。 –

回答

1

看着你編輯的問題。你這樣做是錯的。

將引用傳遞給元素會更簡單,而不是名稱。

JS:

function add(element) { 
    $(element).parent().clone().insertAfter($(element).parent()); 
} 

HTML:

<p name="name" id="name" onclick="add(this)">Hello Again</p> 

如果你想知道爲什麼你的代碼沒有工作:

「id」 和 「名」 是2個不同的屬性。在CSS中(並因此在jQuery中),通常通過ID選擇一個元素,語法如下:#idOfElement。如果您確實需要,可以通過名稱選擇一個或多個元素:*[name="nameOfElement"]

這給你2種選擇:

  • 通到原來的add功能的ID,而不是名稱:

    <p name="name" id="name" onclick="add(this.id)">Hello Again</p> 
    
  • 改變你的附加功能使用的名稱,而不是

    工作
    function add(name) { 
        $('*[name="' + name + '"]').parent().clone().insertAfter($('*[name="' + name + '"]').parent()); 
    } 
    

無論如何,傳遞元素本身的引用仍然是最佳選擇。

+0

謝謝羅曼 – Gabriel

+0

我會盡量使用你的建議。 – Gabriel

+0

哇,它的工作! – Gabriel

2

如果喲使用jquery你可以做follwing:

$('#thisid').attr('name'); 
+1

我認爲如果他想知道「thisid」,他不能真正將其用作選擇器。 當然,改變一個元素的id並不是一個好習慣,因此不需要「查找」一個元素的id ... – Roman

17

因此,假設你有var input設置爲你的元素:

  • input.value爲您提供了價值
  • input.id給你編號
  • input.name給你名字
3

,如果你使用jQuery

$(this).attr('name'); //for name 
$(this).attr('id'); //for ID 
+0

鑑於'this'指的是元素。 ..你無法在任何地方運行。 – pimvdb

+0

很好看他編輯的代碼。這肯定不會工作:) – Broncha