如何修改文档中DIV元素的子集?

时间:2015-12-22 07:46:28

标签: javascript jquery

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);
});

2 个答案:

答案 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