2014-02-22 89 views
0

嗨,我是jquery和ajax的初學者。這是我的代碼:如何在javascript函數中從html中獲取數據值?

的.html

<li class="list-group-item">   
    <h2>Vocabulary</h2> 
    <h4> 
     <span class="label label-success">Like Name</span> 
     <span class="label label-danger">GEPT</span> 
     <button type="button" id="collapsible" class="btn btn-default" data-toggle="collapse" data-target="#intro" data-word="good" onclick="loadXMLDoc()"> 
     <span class="glyphicon glyphicon-plus"></span> 
     </button> 
    </h4> 
    <div class="collapse" id="intro"> 
     <div class="detail"> 
     <img src='http://www.michigan.com/assets/images/loading-module.gif'/> 
     </div>   
    </div> 
    </li> 
    <li class="list-group-item">  

的javascript:

function loadXMLDoc() 
{ 
    var xmlhttp; 
    var word = $(this).data("word"); 
    var path='get_word_detail.php?word='+word; 
    if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    }else{// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    xmlhttp.onreadystatechange=function(){ 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    document.getElementById("intro").innerHTML=xmlhttp.responseText; 
    } 
} 
xmlhttp.open("GET",path,true); 
xmlhttp.send(); 

}

我的頁面包含一個列表有許多倒塌的列表項。每個列表項都包含一個用於展開項目內容的按鈕。

我想從html中獲取「數據字」,但它沒有工作,有誰知道如何正確地做到這一點,以及是否有可能讓我只傳遞HTML標籤中的參數,如「onclick =」loadXMLDoc jQuery的 「好」)「?

感謝

回答

0

使用ATTR功能

$("#collapsible").attr("data-word"); 

編輯

$(".btn").click(function(){ 
alert($(this).attr("data-word")); 
}); 
+0

謝謝您的答覆。這項工作對我來說,但我發現,如果我有很多列表項與按鈕ID「collapsible」。這將只適用於第一項...有什麼方法可以解決它? –

+0

給所有按鈕類相同的類名,那麼你可以訪問諸如$ ATTR()(「類名」)。 –

+0

因爲我使用引導程序,所以我的按鈕的類是「btn btn-default」。我修改它像這樣:var word = $(「。btn」)。attr(「data-word」);但它仍然是第一項... :( –

0

您可以使用下面的代碼

function loadXMLDoc(evt) 
{ 
var element = evt.target; 
    var xmlhttp; 
    var word = $(element).data("word"); 
... 
} 
+0

我不知道爲什麼,但是這不工作:(!我仍然無法獲得單詞價值。 –

0

您正在jQuery和純JS的一些搭配,儘量做到一個方式。但是如果你想發動對點擊您的負載FUNC不增加的onclick ATTR到HTML標記使用jQuery:

$(document).ready(function(){ 
    $('#yourBtnId').click(function(){ 
    loadXMLDoc(); 
}) 
}); 

如果我correcltly理解問題。

相關問題