$("#test").on('click', begin);
function begin(){
var test = ["apple","pear","banan"];
for (var i=0; i < test.length; i++){
console.log(test[i]);
var listItem = document.createElement('text'),
html = `<pstyle='margin-left:12%;padding- top:8%;color:white;font-family:testFont1;font-size:15px;'> ${test[i]} </p>
<pstyle='margin-left:3%;color:white;font-family:testFont1;font-size:17px;line-height:5px;'>${'someothertext'}</p>
<pstyle='margin-left:3%;color:white;font-family:testFont1;font-size:12px;line-height:10px;'>
${test[i]}</p>
<pstyle='margin-left:3%;padding-bottom:8%;color:white;font-family:testFont1;font-size:12px;line-height:-10px;'>${'someothertext'}</p>`;
listItem.innerHTML = html;
allresults.appendChild(listItem);
$(listItem).on('click', testAlert);
}
}
function testAlert(e){
let text = $(e.target.parentElement.firstChild).html().trim();
alert(text);
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="searchResults">
<div id="allresults" >
</div>
</div>
<button id=test>click me</button>
&#13;
我想点按名为div
的{{1}}标记,allresults
标记应该返回数据集中的设定值。就我而言,它将是div
。
但是,我不知道为什么我只能输入名为appleType
的{{1}}标记的任何部分。我必须非常具体地点击div
然后才会显示警报。如果我点击任何其他地方,它会提醒allresults
。
所以我想要的是能够点按任何地方以获得appleType
的警报。
我的JS中的for循环循环遍历数据库,并在undefined
标记appleType
中显示我的HTML页面中的所有值
我的JS档案:
div
我的Html文件:
allresults
我的JS文件调用tapped div:
for(var i = 0; i < res.rows.length; i++){
var listItem = document.createElement('text'),
html = " res.rows.item(i).appleType + "<br>" + res.rows.item(i).pearType;
listItem.dataset.appleType = res.rows.item(i).appleType;
listItem.innerHTML = html;
allresults.appendChild(listItem);
}
答案 0 :(得分:0)
使用源代码,我将编辑我的答案:
您的问题是,您将所有html压缩到同一个实体中,并且您假设您可以为您正在创建的内容设置属性。如果您愿意,e或事件不会将该属性应用于它,因为它是事件本身的新实例。
试试这个:
$(e.target).get(0).firstChild.data;
或非jquery路线做同样的事情:
e.target.firstChild.data
这将返回您单击的元素的第一个块,并忽略br标记和以下标记。我希望这就是你所需要的。