Javascript jQuery:$(元素).text()不';行不通
我正在动态生成包含链接的内容div。单击链接时,应弹出一个包含链接文本的弹出窗口(showMyText函数)。相反,我得到一个空字符串:( 为什么这不起作用呢?我已经搜索了Stackoverflow和jQueryAPI,它应该能起作用Javascript jQuery:$(元素).text()不';行不通,javascript,jquery,html,Javascript,Jquery,Html,我正在动态生成包含链接的内容div。单击链接时,应弹出一个包含链接文本的弹出窗口(showMyText函数)。相反,我得到一个空字符串:( 为什么这不起作用呢?我已经搜索了Stackoverflow和jQueryAPI,它应该能起作用 function a(){ var div=document.createElement("div"); div.innerHTML='<a class="aClass" href="javascript:showMyText(this)"&
function a(){
var div=document.createElement("div");
div.innerHTML='<a class="aClass" href="javascript:showMyText(this)">Link Text</a>';
var parent_div=document.getElementById('dinamicni_div');
parent_div.appendChild(div);
}
function showMyText(link){
var txt=$(link).text();
alert(txt);
}
函数a(){
var div=document.createElement(“div”);
div.innerHTML='';
var parent_div=document.getElementById('dinamicni_div');
父/子分部(分部);
}
函数showMyText(链接){
var txt=$(link.text();
警报(txt);
}
将代码更改为:
div.innerHTML='<a class="aClass" onclick="showMyText(this)">Link Text</a>';
div.innerHTML=”如果您使用jQuery获取文本()
为什么不将其用于其他所有内容
function a() {
var $div = $("<div></div>");
var $a = $("<a></a>")
.attr("href", "#")
.addClass("aClass")
.text("Link text")
.appendTo($div);
$div.appendTo("#dinamicni_div");
}
$("#dinamicni_div").on('click', '.aClass', function() {
alert($(this).text());
});
函数a(){
变量$div=$(“”);
var$a=$(“我将采用稍微不同的方法,使用“live”方法,该方法将允许您在将click事件插入DOM后将其绑定到动态创建的元素
$(document).ready(function(){
$('#dinamicni_div').html('<a class="aClass" href="#">Link Text</a>');
$(".aClass").live('click',function(){
alert($(this).text());
});
});
$(文档).ready(函数(){
$('#dinamicni_div').html('');
$(“.aClass”).live('click',function(){
警报($(this.text());
});
});
我发现在用户手动编辑文本区域后,text()
停止工作。val()
继续按预期工作。因为链接
不是dom节点,没有有效的选择器,或者没有与选择器匹配的元素。然后我如何访问(a href)元素调用函数?使用关键字this它也不起作用(我认为这是引用函数本身)哇,onclick vs href。。Thanks@PrimožKralj,不要使用onclick=
或href=“javascript:“
。只要涉及jQuery,就可以轻松避免完全使用内联JavaScript。因为我刚刚开始探索jQuery:)谢谢,这看起来太棒了!@PrimožKralj,这确实是最好的答案,因为它利用jQuery的强大功能完全消除了任何内联JavaScript。Sparky,我正在进行更改(包括删除内联JS):live()
已被弃用。您不应该使用它,因为它最终将被删除。对于1.7+,请使用on()
,否则请使用delegate()。