2011-04-18 59 views
0

由於此處成員的幫助,我的代碼運行良好。現在我有最後一步/請求。我有以下的代碼,有些人可能之前只是在最後一小時看到:在jQuery中獲取元素的值

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("[id^=topic]").change(function() { 
      var a = 'pk' + $(this).attr('id').replace('topic', ''); 
      var b = $(a).val() 
      alert(b); 
     }); 
    }); 
</script> 

再後來就:

<td id='pk_1'>Cat</td> 
<td id='pk_2'>Dog</td> 

此代碼檢出pk_1,pk_2等和地點到名爲變量「一個」。我想要的不是獲得元素pk_1的價值。我嘗試了一些不同的方法來獲得這個並將其放入「b」中。例如,我添加了「#」。沒有工作。有時候警報框會顯示「未定義」一詞。任何人有任何建議?

謝謝大家

+0

你到底想達到什麼目的? – Starx 2011-04-18 10:52:58

回答

1

使用.html()而不是.val()

... 
var a = '#pk' + $(this).attr('id').replace('topic', ''); 
var b = $(a).html(); 
alert(b); 
+0

太好了。感謝它的工作。它說「我可以在9分鐘內接受答案」。請等待,我會接受:-) – Hiroki 2011-04-18 10:52:57

0

因爲它是一個ID選擇應與#開始。把它放在選擇器上。此外,td元素沒有value,只有input元素具有。您可能需要內部text(或者,也許是html)。如果這不起作用,那麼檢查一下你的id是否是你期望的。

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("[id^=topic]").change(function() { 
      var a = '#pk' + $(this).attr('id').replace('topic', ''); 
      var b = $(a).text() 
      alert(a + ' has value ' + b); 
     }); 
    }); 
</script> 
+0

總體而言,這個答案真的很好,但我認爲val()應該保留爲輸入元素 – Chris 2011-04-18 10:54:00

+0

嗯,他沒有使用'val()' – JohnP 2011-04-18 10:55:29

+0

Thats bizzarre,我可以'你發誓你有var b = $(a).val();不是.text()。我的錯。 – Chris 2011-04-18 11:07:12

1

幾件事情

$(document).ready(function() { 
    $("[id^=topic]").change(function() { 
     var a = '#pk_' + $(this).attr('id').replace('topic', ''); //add # and _ 
     var b = $(a).html(); //use .html and not .val 
     alert(b); 
    }); 
}) 

這應該爲你工作。

0

基於這樣一個事實,即一個非常具體的id,比如說id ='topic_1'恰好對應id ='pk_1',我會說你應該跳過整個替換/操作id標籤來找到另一個。

改爲使用元數據插件。

<input type=text id="topic1" class="topic {pk:#pk_1}"/> 
<input type=text id="topic2" class="topic {pk:#pk_2}"/> 

在腳本:

$(document).ready(function() { 
    $(".topic").change(function() { 
     alert($($(this).metadata().pk).html()); 
    } 
} 

元數據可以在這裏下載:

http://plugins.jquery.com/project/metadata

+0

謝謝。我會檢查這一點。看起來它可能會更好。 – Hiroki 2011-04-18 12:26:09

+0

從技術上來說,其他方法沒有任何問題,我偶爾會使用它,但是我基於對其他名稱的操作來訪問對象有點有趣。 – Chris 2011-04-18 12:29:46