簡體   English   中英

JavaScript或Jquery中的選擇器

[英]Selectors in javascript or Jquery

如何獲得相同類的特定選擇器的值?

function rev() {
  var username = document.getElementByClass(value).value; /// or textContent;
  return alert (username);
}

                <a href="#" class="but" onclick="rev()">Hey</a>
                <a href="#" class="but" onclick="rev()">Hey2</a>

                <button class="but" onclick="rev()">hey</button>
                <button class="but" onclick="rev()">NOww</button>

但是結果總是嘿

有任何想法嗎?

看起來您正在嘗試使用but類來獲取每個元素的innerText ,然后根據所單擊的元素來alertvalue/innerText

您可以抓住所有buts but ,然后為每個buts supply提供onclick方法,如下所示:

var buts = document.getElementsByClassName('but');
var keys = Object.keys(buts);

keys.forEach(function(but, idx) {
  buts[idx].onclick = function() {
    var username = buts[idx].innerText;
    alert(username);
  };
});

這將alert first butHeysecond but Hey2 ,等等。。。您可以在此處查看示例:

http://jsbin.com/yunulayihi/edit?html,js,輸出

您所提出的問題有多個問題,我假設它是偽代碼,因為它甚至還不及返回書面形式的“嘿”。

首先,我相信您打算使用getElementByClassName ,而不是'getElementByClass'

其次,我認為您想要textContent ,而不是clicked元素的value

但就您的問題而言,我認為問題是您在打電話:

document.getElementByClassName('but').value

這實際上意味着,當調用rev()時,它將在文檔中搜索.but所有實例, .but查找一個名為“值”的對象屬性...

相反,您只需要其onclick事件已被觸發的元素的textContent。 為此,您需要在事件處理程序函數rev()捕獲事件。

這里是您可以附加的方式rev()函數的“click”事件處理程序與類名的文件中的所有項目.but -注意,我刪除從HTML onclick屬性的功能REV(),而是將其添加當.map()循環並調用button.addEventListener()時,執行每個元素:

 var buts = document.getElementsByClassName('but'); var buttons = Array.prototype.slice.call(buts); buttons.map(function(button) { button.addEventListener('click', rev); }); function rev(e) { // This is the element targeted by the current event. var element = e.target; // Assuming you want 'Hey', 'Hey2', etc. var value = element.textContent; alert(value); } 
 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>JS Bin</title> </head> <body> <a href="#" class="but">Hey</a> <a href="#" class="but">Hey2</a> <button class="but">hey</button> <button class="but">NOww</button> </body> </html> 

答案很簡單:要從正在監聽事件的元素中獲取特定值,您必須捕獲事件對象-事件對象的'target'屬性是監聽事件的元素。

您可以使用jquery中的每個函數來獲取文本

 $('.but').each(function(){
   $(this).text()   // you can access any attribute for this class 
 });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM