gpt4 book ai didi

javascript - 针对两个元素的点击过滤器

转载 作者:行者123 更新时间:2023-11-30 10:27:58 25 4
gpt4 key购买 nike

我有一个 jquery 事件,它在单击某个按钮时触发,然后检查某个容器段落的值是否正好等于预定义变量。如果为真,我希望它用我定义的不同变量替换段落,并更改完全不同元素的文本。

不过目前,即使该段落不等于值(在本例中为 x),我的代码也会触发该部分以更改另一个元素。有什么办法可以做到这一点吗?

var x = 'a string';
var y = 'a different string';
$('#element-container').on('click', '#button1', function (){
$('#element p').filter(function() {
return $(this).html() == x;
}).replaceWith('<p>' + y + '</p>'); // This works as intended
$('.tooltip p').text('some new text here'); // This however, fires wiether #element p == x or not
});

HTML

<div id="element-container">
<div id="element"><p>Text</p></div>
<button id="button1">button</button>
<div class="tooltip"><p>Some text</p></div>
</div>

最佳答案

var x = 'a string';
var y = 'a different string';

$('#element-container').on('click', '#button1', function (){
var elems = $('#element p').filter(function() {
return $(this).html() == x;
});

if (elems.length) { // check if any elements matched
elems.replaceWith( $('<p />', {text: y}) );
$('.tooltip p').text('some new text here');
}
});

关于javascript - 针对两个元素的点击过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18662825/

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