我希望在我的页面上有一个隐藏的搜索表单,以允许用户在onclick上过滤标签。我想我是从正确的轨道开始的,但我可能已经掉到了兔子洞里。
到目前为止,我可以替换表单中的值,但我不知道如何运行循环,以便它只返回被单击的项的innerHTML。它目前贯穿所有选项并在最后停止。
非常感谢任何帮助。
以下是标签的内容:
<div id="tagLinks" class="tags" >
<span class="clickable" onclick="getValue();">Social Media</span>,
<span class="clickable" onclick="getValue();">Business</span>,
<span class="clickable" onclick="getValue();">Content</span>,
<span class="clickable" onclick="getValue();">Marketing</span>,
<span class="clickable" onclick="getValue();">Engagement</span>,
<span class="clickable" onclick="getValue();">Facebook</span>,
<span class="clickable" onclick="getValue();">Twitter</span>,
<span class="clickable" onclick="getValue();">Google Plus</span>
</div>
这是我的javascript: $(document).ready(function(){
var tagArray = document.getElementById("tagLinks").innerText.split(', ');
var spanObj;
tagArray.forEach(createElement);
function createElement(arrayItem, index, array) {
spanObj = "<span class='clickable' onclick='getValue();'>" + arrayItem + "</span>";
tagArray[index] = spanObj.toString();
document.getElementById("tagLinks").innerText = "";
$("#tagLinks").append(tagArray.join(", "));
$('#tagLinks').css('cursor','pointer');
}
function getValue() {
var value = document.getElementById('tagInput').value;
var newValues = document.getElementsByClassName('clickable');
for(var i=0; i < newValues.length; i++) {
document.getElementById('tagInput').value = newValues[i].innerHTML;
}
}
答案 0 :(得分:3)
摆脱onclick,你正在使用jQuery,所以使用它。
$("#tagLinks").on("click", "span.clickable", function() {
$('#tagInput').val(this.innerHTML);
});
答案 1 :(得分:0)
正如@epascarello所说,如果你使用的是jquery,你应该正确使用它。
无论如何,这是一个纯粹的javascript答案:
function getValue() {
var value = document.getElementById('tagInput').value;
var newValues = document.getElementsByClassName('clickable');
for(var i=0; i < newValues.length; i++) {
document.getElementById('tagInput').setAttribute("src","newValues[i].innerHTML");
}
}