jQuery - 获取点击元素的内容

Posted

技术标签:

【中文标题】jQuery - 获取点击元素的内容【英文标题】:jQuery - Get content of clicked element 【发布时间】:2014-08-15 04:52:57 【问题描述】:

我试图获取一个 jquery 移动列表的被点击元素的 id:

<div data-role="main" id="immals">
 <ul data-role="listview" class="immj ui-listview" id="imj">
    <li class="ui-first-child"><a href="#stdjg" id="test">TEST</a></li>
    <li class=""><a href="#stdjg11" >11</a></li>
    <li class=""><a href="#stdjg12" >12</a></li>
    <li class="ui-last-child"><a href="#stdjg13">13</a></li></ul>
</div>

$(document).ready(function(data) 
    $('#imj li').click(function()
      alert($(this).attr('itemid'));
    );
);

但我总是得到“未定义”

【问题讨论】:

您没有在 html 中以 itemid 的名称声明任何属性。 并且没有任何li 元素(在代码中将是this)设置了任何id jQuery Mobile 不使用 DOM 就绪;您还可以使用其他几个事件。话虽如此,您是否希望获得单击的元素的内容或 id。请记住,jQuery Mobile 会修改您的标记,因此,如果您要获取内容,请做好准备——您会得到比您要求的更多的东西。 【参考方案1】:

您的$('#imj li') 没有这样的 itemid 属性,使用 .html() 检索内容

$(document).ready(function(data) 
$('#imj li').click(function()
  alert($(this).html())
);
);

【讨论】:

@War10ck 大声笑在我读到这篇文章的那一刻,我在问题标题中看到他想要检索内容 -.- 多么糟糕的公式和准备问题【参考方案2】:

没有这样的属性可以找到值

$('#imj li').click(function()  // click on list item for ul of id imj
  alert($(this).attr('itemid')); // get the list item's attribute itemid
);

崩溃! 你的 HTML 标记中没有这样的属性,jQuery 无法完成请求,你会摸不着头脑,为什么,为什么为什么jQuery 为什么!但是,那是行不通的。您需要了解这里的 jQuery 代码。

您将获得实际传递给方法的属性(其字符串名称)的属性值。然后该值将用作要提醒的string 变量。

这可以为您解决问题。 只是例子,注意没有itemid这样的属性。

<li itemid="something">List Item content</li>

然后代码就可以工作了。否则它不会像您希望那样工作。

你应该尝试的,应该是这样的

<li id="itemid1">Item id is 1!</li>

【讨论】:

没有itemid这样的属性。您应该使用像 id 这样的有效属性,或者创建像 data-itemid 这样的自定义 data-* 属性... 啊我的错,我在 之后写 itemit 而不是在 @War10ck 我知道。 :) 我只是想和他相处融洽。没有别的,但是我也添加了该示例部分。 另一个问题:函数:$('#imj li').click(function() 仅适用于预定义的列表元素,动态添加不起作用.. 代码是: $("#immals ul").append(""+data.jahr[i]+""); 那怎么了? @user3772619 你需要使用.on().delegate() 的事件委托,这取决于你的jQuery 版本...

以上是关于jQuery - 获取点击元素的内容的主要内容,如果未能解决你的问题,请参考以下文章

JQuery,如何清除,除了点击的元素以外,其他所有元素

jquery 点击使元素置顶

jquery 怎么获取点击的当前元素

获取下一个元素 Jquery

Jquery 怎么只给点击的元素加个class

jquery 或者js 怎么获取页面光标所在的元素