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 - 获取点击元素的内容的主要内容,如果未能解决你的问题,请参考以下文章