推荐关注
› Meteor
› JSLint - a JavaScript code quality tool
› jsFiddle
› D3.js
› WebStorm
推荐书目
› JavaScript 权威指南第 5 版
› Closure: The Definitive Guide
SkyRing

js 判断 id 改变 input 中 value 的部分内容,怎么弄啊。

  •  
  •   SkyRing · Dec 10, 2022 · 3930 views
    This topic created in 1430 days ago, the information mentioned may be changed or developed.
    比如

    <input class="text-input" type="text" id="image-link3" value="https://i.xxx.com/Rg1xQrV.png" data-focus="select-all" readonly="">

    https://i.xxx.com/Rg1xQrV.png

    替换成 https://a.aaa.net/Rg1xQrV.png
    19 replies  •  2022-12-10 14:47:17 +08:00
    summerwar
    summerwar
    Dec 10, 2022
    1
    如果是提交的表单,你重写 submit ,在里面替换

    如果是展示的,在模板里写 replace 就好了

    不需要用 js
    summerwar
    summerwar
    Dec 10, 2022
    2
    需要用 js ,但是不需要用 js 判断 id 来改变 input 中的 value
    molvqingtai
    molvqingtai
    Dec 10, 2022 via Android
    3
    const input = document.querySelector("image-link3")

    if input.value === xxx
    input.value = aaa

    手机不好打,大概这样子
    SkyRing
    SkyRing
    OP
    Dec 10, 2022
    4
    @molvqingtai 我试试看
    SkyRing
    SkyRing
    OP
    Dec 10, 2022
    5
    ![07d9f0c7d958fbe98e2bd43cfbcb888a.png]( https://pic1.rpgsky.net/imgcn/moepic/2022/12/10/07d9f0c7d958fbe98e2bd43cfbcb888a.png)
    感觉似乎并无软用啊
    SkyRing
    SkyRing
    OP
    Dec 10, 2022
    6
    xlsama
    xlsama
    Dec 10, 2022
    7
    const el = document.querySelector('#image-link3');

    setTimeout(() => {
    el.setAttribute('id', 'xxx');
    }, 2000);

    const observer = new MutationObserver((mutations) => {
    mutations.forEach((mutation) => {
    if (mutation.type === 'attributes') {
    console.log('attributes changed');
    el.setAttribute('value', 'https://a.aaa.net/Rg1xQrV.png');
    }
    });
    });

    observer.observe(el, {
    attributeFilter: ['id'],
    });
    SkyRing
    SkyRing
    OP
    Dec 10, 2022
    8
    @summerwar 不判断的话,那岂不是,都变了?
    SkyRing
    SkyRing
    OP
    Dec 10, 2022
    9
    @xlsama 大佬您好,变动的只有 a.aaa.net 就可以了,你这整个全改了诶~
    tonyrft
    tonyrft
    Dec 10, 2022
    10
    嗯,您想要只更改 URL 的一部分而不是整个 URL ,这是可以实现的。您可以使用 JavaScript 的 String.replace() 方法来执行替换操作,该方法允许您指定要替换的字符串和替换为的字符串。

    例如,您可以使用以下代码来执行替换操作:

    var inputElement = document.getElementById('image-link3');
    inputElement.value = inputElement.value.replace('https://i.xxx.com', 'https://a.aaa.net');

    请注意,我们在上面的代码中使用了两个参数的 replace() 方法,第一个参数是要替换的字符串(即 'https://i.xxx.com'),第二个参数是替换为的字符串(即 'https://a.aaa.net')。

    如果您需要在页面加载完成后执行此操作,可以将上述代码放在 window.onload 或 document.ready 事件的回调函数中,如前面所述。

    希望这些信息对您有帮助。
    xlsama
    xlsama
    Dec 10, 2022
    11
    @SkyRing
    s.replace(/http(s):\/\/(.*)\//,'https://a.aaa.net/')
    xlsama
    xlsama
    Dec 10, 2022
    12
    el.setAttribute('value', el.value.replace(/http(s):\/\/(.*)\//, 'https://a.aaa.net/'));
    SkyRing
    SkyRing
    OP
    Dec 10, 2022
    13
    @tonyrft 感谢大佬,非常有用,不过又遇到了个新问题,就是这个,他的第二个地址没办法替换,因为只能获取到地址,前面的名称获取问题也没法解决。
    lxiian
    lxiian
    Dec 10, 2022 via iPhone
    14
    你问问 chatgpt ,楼上那个好像就是 chatgpt 给的答案
    loading
    loading
    Dec 10, 2022
    15
    @tonyrft #10 你这 chatgpt ,小心被封号
    xiangyuecn
    xiangyuecn
    Dec 10, 2022❤️2
    16
    面向问答编程。不建议提供任何直接答案。
    15855pm
    15855pm
    Dec 10, 2022
    17
    过于伸手党了,这不是 js 的问题,你需要先去学习正则表达式,太基础的东西还是问搜索引擎吧
    SkyRing
    SkyRing
    OP
    Dec 10, 2022
    18
    @loading chatgpt 这个是啥东西?
    SkyRing
    SkyRing
    OP
    Dec 10, 2022
    19
    @15855pm 已经解决了,谢啦,各位大佬们
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3847 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 05:55 · PVG 13:55 · LAX 21:55 · JFK 00:55
    ♥ Do have faith in what you're doing.