Javascript 如何在单击链接时启动函数,然后从该链接传递类
我有这个HTML: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
<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);
});