gpt4 book ai didi

javascript - 将HTML中的onclick直接替换成JavaScript

转载 作者:行者123 更新时间:2023-11-29 20:52:08 25 4
gpt4 key购买 nike

我的代码如我所愿地工作,但我试图让它与动态 DIV ID 一起工作:

$(function() {
var contents = $('#term1').text().split(' '),
modText = '';

for (var i = 0; i < contents.length; i++) {
modText += '<span>' + contents[i] + '</span> ';
}

$('#term1').html(modText);

$('#term1').click(function(e) {
$(e.target).toggleClass('underline');
});

$('#button1').click(function() {
var selected = [];
$('span.underline').each(function() {
selected.push($(this).text());
});
alert('Selected: ' + selected.join(','));
});
});
span.underline {
text-decoration: underline;
color: blue;
}

span {
cursor: pointer;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<span id="term1">Lorem ipsum dolor sit amet</span>
<button type="button" id="button1">Submit</button>

这是现在的 HTML:

<span id="term1">Lorem ipsum dolor sit amet</span>
<button type="button" id="button1">Submit</button>

如何让我的函数像这样在 span 和按钮中采用动态 ID:

<span id="term1">Lorem ipsum dolor sit amet</span>
<button type="button" id="button1">Submit</button>
<span id="term2">Lorem ipsum dolor sit amet</span>
<button type="button" id="button2">Submit</button>
<span id="term3">Lorem ipsum dolor sit amet</span>
<button type="button" id="button3">Submit</button>

我不习惯以这种方式使用函数。如果有任何文档或工作代码可以帮助我了解如何执行此操作,我将不胜感激。

提前谢谢你,
倒钩

编辑:脚本是如何工作的。您运行脚本,单击一个或多个带下划线的单词,然后单击按钮以对您单击的单词发出警报。

最佳答案

您可以使用 querySelectorAll

第 1 步。 使用 querySelectorAll 获取所有按钮。

Step-2. 在所有按钮上绑定(bind)点击事件。

第 3 步。获取 previousElementSibling 以获取跨度值。

试试这个

var buttons = document.querySelectorAll('button');
var spans = document.querySelectorAll('span');

for (var i=0; i<spans.length; ++i) {
var contents = spans[i].innerHTML.split(' '),
modText = '';
for (var j = 0; j < contents.length; j++) {
modText += '<span>' + contents[j] + '</span> ';
}
spans[i].innerHTML=modText;
spans[i].addEventListener('click', clickFuncSpan);
}

for (var i=0; i<buttons.length; ++i) {
buttons[i].addEventListener('click', clickFunc);
}

function clickFunc() {
var selected = [];
// alert(this.id);
// alert(this.previousElementSibling.innerHTML);
$(this.previousElementSibling).find("span").map(function(){
if($(this).hasClass( "underline" )){
selected.push($(this).html());
}
})
console.log(selected.join(','));
}

function clickFuncSpan(e) {
e.target.classList.add("underline");
}
span.underline {
text-decoration: underline;
color: blue;
}

span {
cursor: pointer;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
<span id="term1">Lorem ipsum dolor sit ame1t</span>
<button type="button" id="button1">Submit</button>
</br>
<span id="term2">Lorem ipsum dolor sit amet2</span>
<button type="button" id="button2">Submit</button>
</br>
<span id="term3">Lorem ipsum dolor sit amet3</span>
<button type="button" id="button3">Submit</button>
</body>

关于javascript - 将HTML中的onclick直接替换成JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51373110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com