用于替换a的内容的Jquery代码<;李>;在以下条件下使用主值

用于替换a的内容的Jquery代码<;李>;在以下条件下使用主值,jquery,Jquery,我很确定我的逻辑是流畅的,所以请帮助: 我有一个经典的无序列表,其中一些li值不同(“Hello 1”、“Hello 2”、“Hello 3”),而一些li值相同(“Hello World”值) 我还有一个匹配值,它是来自数据锚的“Hello World” <ul class="traffic" data-ANCHOR="Hello World"> <li>Hello 1</li> <li>Hello 2</li

我很确定我的逻辑是流畅的,所以请帮助:

我有一个经典的无序列表,其中一些li值不同(“Hello 1”、“Hello 2”、“Hello 3”),而一些li值相同(“Hello World”值)

我还有一个匹配值,它是来自数据锚的“Hello World”

 <ul class="traffic" data-ANCHOR="Hello World">
       <li>Hello 1</li>
       <li>Hello 2</li>
       <li>Hello 3</li>
       <li>Hello World</li>
       <li>Hello World</li>
  </ul>  
它不起作用,什么也没发生。

但是,如果我将if条件更改为
if(ANCHOR!=ANCHORMATCH)
,则代码会将所有
  • 的内容替换为“嘿嘿”

    我是一个新手,但我的直觉告诉我应该使用一个循环或其他东西

    var ANCHOR = $("ul.traffic").data('ANCHOR');
    var ANCHORMATCH = $("ul.traffic li a").text();
    
    if(ANCHOR == ANCHORMATCH){
        $('ul.traffic li a').replaceWith('hey hey');
    }
    
    此代码仅查看第一个
    ul.traffic li a
    元素的内容。您需要使用来循环它们中的每一个。(事实上,您的HTML甚至没有
    a
    元素:我已经相应地修改了代码。)

    还要注意,jQuery将始终将
    数据锚
    移动为
    数据(“锚”)
    。为属性指定正常的大小写(
    数据锚
    )可能是明智的


    尝试使用类似的方法

    $(".traffic li").each(function(i){
    
    })
    
    试试这个:

    $('ul.traffic li:contains("' + $("ul.traffic").data('ANCHOR') + '")').html('hey hey');
    

    记住jQuery/JavaScript将所有数据项规范化为小写

    var ANCHOR = $("ul.traffic").data('ANCHOR');
    
    应该是

    var ANCHOR = $("ul.traffic").data('anchor');
    
    这是一把小提琴

    var ANCHOR = $("ul.traffic").data('ANCHOR');
    
    var ANCHOR = $("ul.traffic").data('anchor');
    
    var ANCHOR = $("ul.traffic").data('anchor');
    
    $('ul.traffic li').each(function() {
        if ($(this).text() === ANCHOR) {
            $(this).html('hey hey');
        }
    });