Javascript 如何在单击链接时启动函数,然后从该链接传递类

Javascript 如何在单击链接时启动函数,然后从该链接传递类,javascript,jquery,Javascript,Jquery,我有这个HTML: <li class="sshjd839djjd blahclass"><a onclick="doSomething()">Blah Blah</a></li> 添加的键/类如下所示: var resultVetRef = new Firebase("https://myappname.firebaseio.com/data/users"); resultVetRef.on("child_added", fun

我有这个HTML:

<li class="sshjd839djjd blahclass"><a onclick="doSomething()">Blah Blah</a></li>
添加的键/类如下所示:

var resultVetRef = new Firebase("https://myappname.firebaseio.com/data/users");
        resultVetRef.on("child_added", function(snapshot) {
          var key = snapshot.key();
          var data = snapshot.val();
          var name = data.name;
          var city = data.city;
          $("#results").append($("<li class=\"" + key + " blahclass\">" + "<a onClick=\"grabVet()\">" + name + ", " + city + "</a></li>"));
        });
var resultVetRef=新Firebase(“https://myappname.firebaseio.com/data/users");
resultVetRef.on(“添加的子对象”,函数(快照){
var key=snapshot.key();
var data=snapshot.val();
var name=data.name;
var city=data.city;
$(“#结果”).append($(“
  • “+”“+name+”,“+city+”
  • ”)); });
    将密钥作为数据添加到
    li

    var resultVetRef = new Firebase("https://myappname.firebaseio.com/data/users");
            resultVetRef.on("child_added", function(snapshot) {
              var key = snapshot.key();
              var data = snapshot.val();
              var name = data.name;
              var city = data.city;
              $("#results").append($("<li class=\"" + key + " blahclass\" data-key=\""+ key +"\">" + "<a onClick=\"grabVet()\">" + name + ", " + city + "</a></li>"));
            });
    
    var resultVetRef=新Firebase(“https://myappname.firebaseio.com/data/users");
    resultVetRef.on(“添加的子对象”,函数(快照){
    var key=snapshot.key();
    var data=snapshot.val();
    var name=data.name;
    var city=data.city;
    
    $(“#results”).append($(“
  • “+”

    专门针对您的示例

    <li class="sshjd839djjd blahclass"><a>Blah Blah</a></li>
    
    $('a').click(function(){
        alert( $(this).closest('li')[0].classList.item(0) );
    });
    
    ClassList方法提供一个包含元素所有类的数组。 对于您的
  • 元素,它将返回数组
    [“specialKey”,“blahclass”]

    function doSomething() {
          // get the firs element of classList array and asign it to a variable
          var specialKey = this.parentElement.classList[0]; // "this" keyword is the reference to clicked element, "parentElement" give you "li" element reference
          // do Firebase magic, I will know this once I get that key
    }
    
    或修改附加代码:

    var resultVetRef = new Firebase("https://myappname.firebaseio.com/data/users");
    resultVetRef.on("child_added", function (snapshot) {
      var key = snapshot.key();
      var data = snapshot.val();
      var name = data.name;
      var city = data.city;
      // create li element
      var li = $("<li class=\"blahclass\"></li>");
      // create a element
      var a = $("<a>" + name + ", " + city + "</a>");
      a.on("click", function () {
        // when a clicked execute "doSomething" passing key as parameter
        doSomething(key);
      })
      // append a to li
      li.append(a);
      //append li to #results
      $("#results").append(li);
    });
    
    var resultVetRef=新Firebase(“https://myappname.firebaseio.com/data/users");
    resultVetRef.on(“添加的子对象”,函数(快照){
    var key=snapshot.key();
    var data=snapshot.val();
    var name=data.name;
    var city=data.city;
    //创建li元素
    var li=$(“
  • ”; //创建一个元素 变量a=$(“+name+”,“+city+”); a、 打开(“单击”,函数(){ //单击时,执行“doSomething”,并将键作为参数传递 剂量测定(关键); }) //给李加上 li.附加(a); //将li附加到#结果 $(“#结果”)。追加(li); });
    这是什么意思
    我想抓取specialKey
    ?specialKey的格式是什么?它是一个随机的字母和数字字符串吗?请提供实际的例子,说明实际的类名和结果这是您的特殊密钥?如何在Li上插入“密钥”?您使用php并进行回显?这是一个更好的实践,您可以理解Kira吗名为“key”的数据被添加到li中,您可以使用$(element)检索。data('key')。哦,不完全是。我需要尝试gurvinder372中的代码。我只是想让Firebase中的数据更易于操作。如果不这样做,我将不得不手动更新所有内容:(这个方法的关键点必须是第一类,否则它将返回错误key@AshkanMobayenKhiabani是的,这就是OP提到的。如果我遗漏了什么,请告诉我。我喜欢这种方法。这个链接在我的网站的深处,我如何触发。特别是点击那个链接?@KiraArik
    我如何触发。点击你的我们要遍历到那个链接并做同样的事情。我有OL ID结果,然后进入列表项。我使用基础手风琴,它以某种方式攫取。手风琴项代替Li类。此返回:Uncaught TypeError:不能读取未定义的属性“类列表”。
    
    <li class="sshjd839djjd blahclass"><a onclick="doSomething(this)">Blah Blah</a></li>
    
    function doSomething(thisObj)
    {
      alert($(thisObj).closest("li")[0].classList.item(0)); 
    }
    
    function doSomething() {
          // get the firs element of classList array and asign it to a variable
          var specialKey = this.parentElement.classList[0]; // "this" keyword is the reference to clicked element, "parentElement" give you "li" element reference
          // do Firebase magic, I will know this once I get that key
    }
    
    var resultVetRef = new Firebase("https://myappname.firebaseio.com/data/users");
    resultVetRef.on("child_added", function (snapshot) {
      var key = snapshot.key();
      var data = snapshot.val();
      var name = data.name;
      var city = data.city;
      // create li element
      var li = $("<li class=\"blahclass\"></li>");
      // create a element
      var a = $("<a>" + name + ", " + city + "</a>");
      a.on("click", function () {
        // when a clicked execute "doSomething" passing key as parameter
        doSomething(key);
      })
      // append a to li
      li.append(a);
      //append li to #results
      $("#results").append(li);
    });