【问题标题】:How to select character with jQuery or Javascript?如何使用 jQuery 或 Javascript 选择字符?
【发布时间】:2015-11-01 13:09:41
【问题描述】:

如何使用 Javascript 或 jQuery 在 HTML 元素中选择字符

例如我想选择第一个或第二个或第三个“]”字符 在<p>

<p> Lorem Ipsum is simply dummy [text] of [the] printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, </p>

当我写例如 console.log(character1) 时,它会给我我制作的段落中的第一个 ]

角色的顺序对我来说很重要,因为我想用别的东西改变第一个']'

【问题讨论】:

  • 选择如何,一个“A”就是一个“A”,不管它是不是第一个,第二个或第三个等等?
  • 它会找到A并打印A,这是你想要的吗?
  • 角色的顺序对我来说很重要,因为我想用别的东西改变第一个'A'
  • 我只是在这里猜测,我认为他想检索给定子字符串和相关索引的所有出现,如果是这样的话,看看这个stackoverflow.com/questions/3410464/…

标签: javascript jquery html dom


【解决方案1】:

尝试使用String.prototype.replace(),增加一个计数器以选择第二个“A”,无论如何

var index = null;
var arr = $("p").text().replace(/a/ig, function (m, i) {
    ++index;
    return index === 2 ?  "QQQ" : m
});
$("p").text(arr);

http://jsfiddle.net/srLh93xt/4/

【讨论】:

  • 您是否意识到您的代码是错误的?你还提供了一个小提琴:)
  • @elio.d “你意识到你的代码是错误的吗?你还提供了一个小提琴:)” 可以指出哪个部分是“错误的”? stacksn-ps 目前似乎无法正常工作?
  • 你提供的第一个解决方案,并没有解决寻找子串索引的问题。 match 将只返回所有匹配项
  • @guest271314 它工作得很好但是当我用'['替换'A'时它不起作用所以你有什么解决方案:)
  • @SoufianeDouimia “它工作得很好,但是当我用'['替换'A'时它不起作用所以你有什么解决方案”jsfiddle.net/srLh93xt/5
【解决方案2】:

我了解您需要使用 javascript 操作 HTML 中的某个元素

var x = document.getElementsByTagName("p");

这将为您提供所有标记为“p”的节点的列表,您可以通过指定其索引来选择您的节点

y = x[*tag index*]

那么你可以这样做:

firstIndex = y.innerHTML.indexOf("A");

或者,如果您想获得字母的第二个(或第三个)索引,您只需将起点放在 indexof 开始查找的位置,因此我们希望获得“A”的第二个索引和我们已经从上面的代码行中得到了第一个索引,我们可以这样做:

secondIndex = y.innerHTML.indexOf("A", firstIndex);

【讨论】:

  • 你能给我一个在线例子吗:) in jsfiddle.net
【解决方案3】:

你可以这样做

function getIndicesOf(searchStr, str, caseSensitive) {
    var startIndex = 0, searchStrLen = searchStr.length;
    var index, indices = [];
    if (!caseSensitive) {
        str = str.toLowerCase();
        searchStr = searchStr.toLowerCase();
    }
    while ((index = str.indexOf(searchStr, startIndex)) > -1) {
        indices.push(index);
        startIndex = index + searchStrLen;
    }
    return indices;
}

function replaceCharacter(text ,char, withChar, index) {
    var indices = getIndicesOf(text, char, true);
    return (text.substr(0, indices[index-1]) + 'withChar' + s.substr(indices[index-1]+withChar.length));
}

var text = 'Aekwwewj fkjkwefhwA wkejqwkjeqkwjeA A ewqeqw';
text = replaceCharacter(text, 'A', 'W', 2);

fiddle

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-22
    • 1970-01-01
    • 2015-02-19
    相关资源
    最近更新 更多