Javascript 仅返回一个的文本<;h3>;父标签
好的,我正在使用jquery mobile创建一个移动应用程序,我有一个动态创建的按钮,它是在用户搜索联系人时创建的。当用户找到他/她的搜索联系人的匹配项时,名称将显示在动态创建的标记中。如果存在多个同名人员,则结果可能返回重复项。使用我现在拥有的代码,如果我单击按钮,我只希望它提醒我按钮上方包含的名称。它工作正常,除非有重复,然后它会提醒所有的名称,因为所有的按钮都有相同的类 以下是创建和按钮的循环:Javascript 仅返回一个的文本<;h3>;父标签,javascript,jquery,html,ios,mobile,Javascript,Jquery,Html,Ios,Mobile,好的,我正在使用jquery mobile创建一个移动应用程序,我有一个动态创建的按钮,它是在用户搜索联系人时创建的。当用户找到他/她的搜索联系人的匹配项时,名称将显示在动态创建的标记中。如果存在多个同名人员,则结果可能返回重复项。使用我现在拥有的代码,如果我单击按钮,我只希望它提醒我按钮上方包含的名称。它工作正常,除非有重复,然后它会提醒所有的名称,因为所有的按钮都有相同的类 以下是创建和按钮的循环: for (var i=0; i<contacts.length; i++) {
for (var i=0; i<contacts.length; i++) {
$('#srchResults').append("<div id='resultdiv"+i+"' data-role='collapsible'><h3 id = 'nameh3"+i+"'>"+contacts[i].name.formatted+"</h3>"+"<p>"+'<a href="#" data-role="button" data-icon="plus" data-iconpos="notext" data-theme="c" data-inline="true" class="btnDisguise">'+'Plus'+'</a>'+'<a href="#" data-role="button" data-icon="info" data-iconpos="notext" data-theme="c" data-inline="true" class="btnInfo">'+'Info'+'</a>'+"</p></div>").trigger('create');
}
我需要找到一种方法来提醒按钮所关联的属性,非常感谢您提供的任何帮助。向
resultdiv
添加一个class属性,然后使用.closest()
查找单击的按钮所属的resultdiv
,然后查找其中的h3
for (var i = 0; i < contacts.length; i++) {
$('#srchResults').append("<div id='resultdiv" + i + "' class='resultdiv' data-role='collapsible'><h3 id = 'nameh3" + i + "'>" + contacts[i].name.formatted + "</h3>" + "<p>" + '<a href="#" data-role="button" data-icon="plus" data-iconpos="notext" data-theme="c" data-inline="true" class="btnDisguise">' + 'Plus' + '</a>' + '<a href="#" data-role="button" data-icon="info" data-iconpos="notext" data-theme="c" data-inline="true" class="btnInfo">' + 'Info' + '</a>' + "</p></div>").trigger('create');
}
演示:打字错误
var$this=$(this),
应以结尾
@DrixsonOseña:可能是一个打字错误,但不是语法错误(尽管在这种情况下缩进通常不同,在$this
下缩进h3text
)。@DrixsonOseña这是一个打字错误吗?他们声明了两个变量…$this
和h3text
@DrixsonOseña,这将使h3text
成为一个全局变量,我肯定不是什么操作wants@charlietfl,不,我不是说只是指出一个语法错误,这是一个注释顺便说一句:)
for (var i = 0; i < contacts.length; i++) {
$('#srchResults').append("<div id='resultdiv" + i + "' class='resultdiv' data-role='collapsible'><h3 id = 'nameh3" + i + "'>" + contacts[i].name.formatted + "</h3>" + "<p>" + '<a href="#" data-role="button" data-icon="plus" data-iconpos="notext" data-theme="c" data-inline="true" class="btnDisguise">' + 'Plus' + '</a>' + '<a href="#" data-role="button" data-icon="info" data-iconpos="notext" data-theme="c" data-inline="true" class="btnInfo">' + 'Info' + '</a>' + "</p></div>").trigger('create');
}
$(document.body).on('click', '.btnInfo', function () {
var $this = $(this),
h3text = $this.closest('.resultdiv').find("h3").text();
alert(h3text);
});