所以我有一系列2个嵌套的ul。当您单击li中的文本(位于标记中)时,我的页面会使其可编辑并添加保存按钮。单击保存按钮需要返回li中的新文本和li的id。 id不是问题。我正在尝试使用jQuery的.find来选择那个锚标签(这是成功的),但我似乎无法从中获取文本。
以下是第一个列表及其子列表的示例。
<ul class='lists'>
<li class='list1'>
<a class='a list' id='list1'> List 1 Name</a>
<img id='savelist1id' onClick="SaveName(this.parentNode.id)" src='save.jpg'>
<ul class='sublists'>
<li class='sub1'>
<a class='a sub' id='sub1id'> Sub 1 Name</a>
<img id='savesub1id' onClick="SaveName(this.parentNode.id)" src='save.jpg'>
</li>
<li class='sub3'>
<a class='a sub' id='sub2id'> Sub 2 Name</a>
<img id='savesub2id' onClick="SaveName(this.parentNode.id)" src='save.jpg'>
</li>
<li class='sub2'>
<a class='a sub' id='sub3id'> Sub 3 Name</a>
<img id='savesub3id' onClick="SaveName(this.parentNode.id)" src='save.jpg'>
</li>
</ul>
</li>
</ul>
以下是识别您点击的保存按钮的代码。
function SaveName(parentid){
$('li').find('a').each(function(){
if (this.id == parentid){
alert(this.id+' '+this.text)
}
}
});
我想要this.text向我展示锚标签内的文字。请帮帮忙?
=============================================== ============ 编辑:
请原谅这篇文章。问题是我使用的是Jeditable并且不知道它会用一个表单代替文本,所以任何调用文本的东西都行不通。遗憾。
答案 0 :(得分:6)
只需使用 $(this).text()代替 this.text
老实说,我不明白这个功能背后的逻辑,因为你的功能可以写成:
function SaveName(parentid) {
alert($('li a#' + parentid).text();
}
});
或者我可以建议另一种方法来做你想要的事情:
<ul class='lists'>
<li class='list1'>
<a class='a list' id='list1'> List 1 Name</a>
<img id='savelist1id' onClick="SaveName(this)" src='save.jpg'>
<ul class='list1subs'>
<li class='sub1'>
<a class='a sub' id='sub1id'> Sub 1 Name</a>
<img id='savesub1id' onClick="SaveName(this)" src='save.jpg'>
</li>
<li class='sub3'>
<a class='a sub' id='sub2id'> Sub 2 Name</a>
<img id='savesub2id' onClick="SaveName(this)" src='save.jpg'>
</li>
<li class='sub2'>
<a class='a sub' id='sub3id'> Sub 3 Name</a>
<img id='savesub3id' onClick="SaveName(this)" src='save.jpg'>
</li>
</ul>
</li>
</ul>
使用Javascript:
function SaveName(element) {
alert($(element).prev("a").text());
}
答案 1 :(得分:3)
删除内联处理程序,坏业力。
$(document).ready(function(){
$('.list1subs > li').find('img').bind('click', function(e){
var $this = $(this);
alert($this.siblings('a').text());
});
});
答案 2 :(得分:0)
好的,所以当我点击该字段时,我正在使用Jeditable进行字段编辑。显然我不明白这是做什么的,因为它使用你提供的东西插入表格。这就是为什么whatever.text()变回空白的原因。它没有将表单计为文本,因此它跳过它。