Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery.find以获取a中的文本<;李>;_Javascript_Jquery_Find - Fatal编程技术网

Javascript jquery.find以获取a中的文本<;李>;

Javascript jquery.find以获取a中的文本<;李>;,javascript,jquery,find,Javascript,Jquery,Find,所以我有一系列的2个嵌套ul。当您单击li中的文本(位于a标记中)时,“我的页面”将使该文本可编辑并添加一个保存按钮。单击保存按钮需要返回该li中的新文本和该li的id。id不是问题。我正在尝试使用jQuery的.find来选择锚定标记(这是成功的),但我似乎无法从中获取文本 下面是第一个列表及其子列表的示例 <ul class='lists'> <li class='list1'> <a class='a list' id='list1'> Li

所以我有一系列的2个嵌套ul。当您单击li中的文本(位于a标记中)时,“我的页面”将使该文本可编辑并添加一个保存按钮。单击保存按钮需要返回该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>
我想要这个.text来显示锚定标记内的文本。请帮忙

=========================================================== 编辑:

请原谅这个帖子。问题是我使用的是Jeditable,不知道它会以一种形式代替文本,所以任何称为文本的东西都不起作用。抱歉。

只需使用$(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>

移除内联处理器,坏业力

$(document).ready(function(){
   $('.list1subs > li').find('img').bind('click', function(e){
      var $this = $(this);
      alert($this.siblings('a').text());
   });
});

好的,当我点击字段时,我正在使用Jeditable使字段在适当的位置进行编辑。很明显,我不明白它在做什么,因为它使用您提供的内容插入一个表单。这就是为什么whater.text()返回为空。它没有将表单计算为文本,因此跳过了它。

我已经尝试过了。在你回复后,我又试了一次,结果还是什么也没给我(一个空字符串?),我也试了你建议的替代方案。对于.text(),我仍然一无所获。如果使用firebug,我可以看到当字段变得可编辑时,jquery添加了一个内联表单,这会有什么不同吗?兄弟姐妹()更可靠,只是为了防止他更改标记。这种解决方案的问题是,这些列表中的列表和子列表数量是可变的(可能是无限的)。我使用的是python和HTML\u TMPL,所以我可以使用TMPL\u循环,但如果可能的话,我宁愿避免使用。不管怎样,我都要试一试。我很笨。UL具有一致的等级。子列表上的id随子列表id的变化而变化,但类始终是“列表”和“子列表”。它似乎仍然给我一个空字符串来响应$this.sides('a').text()
function SaveName(element) {
   alert($(element).prev("a").text());
}
$(document).ready(function(){
   $('.list1subs > li').find('img').bind('click', function(e){
      var $this = $(this);
      alert($this.siblings('a').text());
   });
});