JSFiddle:https://jsfiddle.net/eliluong/wvLrgdw2/
我们假设有一个图片库,每个图片都包含在一个具有共同class
名称的容器中。我有一个div
封装了所有内容。我在JSFiddle代码中设置了一个基本的例子。
如果用户点击其中一个图片中的某个特定element
,则生成的操作应对所有图片(或可能是子集)执行某些操作。我编写代码的方式是查看到达最顶层的div,然后搜索到达div
元素,包含我想要更改的内容。但我想弄清楚如何只选择一个子集。我可以使用$('.myB').text('bye');
更改所有这些内容,但不能通过匹配文本来更改其中一些内容。但我现在也无法找到正确比较字符串的方法。你有什么建议可以给我吗?谢谢。
*澄清 - 一个不同的问题是,JQuery可以将所有myB
元素作为数组获取内容hello2
,让我遍历它们吗?
$('.one .myB').bind('click', function() {
//alert('test');
//var ttext = $(this).parentsUntil('.one').find('.myB').text();
//$(this).parentsUntil('.one').find('.myB').text('bye');
//$('.myB').text('bye');
if ($('.myB').text() == "hello2") {
$('.myB').text('bye');
}
//alert('text->' + ttext);
});
答案 0 :(得分:2)
<div>
标记内可能有空格和空行。可以尝试trim()
:
if ($('.myB').text().trim() == "hello2") {
$('.myB').text('bye');
}
答案 1 :(得分:0)
这个问题还不清楚。如果我正确理解这部分
我可以使用
$('.myB').text('bye');
更改所有这些内容但不能通过匹配文本来更改其中一些内容。但我现在也无法找到正确比较字符串的方法。
然后您可能想要执行以下操作:
$('.one .myB').bind('click', function() {
$(".myB").each(function() {
var $this = $(this);
if ($this.text().trim() === 'hello2')
{
$this.css('background-color', 'red'); // just for example
}
});
});
当您点击任意myB
时,此代码将更改文本内容为“hello2”的所有myB
元素的背景。这是demo。