Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery—在元素';s包含多个元素的文本_Javascript_Jquery_Dom - Fatal编程技术网

Javascript Jquery—在元素';s包含多个元素的文本

Javascript Jquery—在元素';s包含多个元素的文本,javascript,jquery,dom,Javascript,Jquery,Dom,这不是的副本,因为我要插入的元素除了文本之外还有更多的元素,使用append将我的元素放置在错误的位置 假设我有很多元素,比如: <li class="target-line"> <blablabla></blablabla> <div class="known">...</div> Element's text <...variable element, can't query it to use

这不是的副本,因为我要插入的元素除了文本之外还有更多的元素,使用append将我的元素放置在错误的位置

假设我有很多元素,比如:

<li class="target-line">
    <blablabla></blablabla>
    <div class="known">...</div>
    Element's text
    <...variable element, can't query it to use .before()></...>
    <more elements/>
</li>
  • ... 元素的文本 使用
    contents()
    filter()

    $('.targetline').contents().filter(function()){
    返回this.nodeType==3
    &&this.textContent.includes(“元素的文本”)//如果文本已知
    }).after('New Element')
    
    
  • ... 元素的文本 ... ...
  • 如果已知文本前的div,可以选择它,使用
    .next()
    ,然后在此之前追加:

    $rows = $("li.target-line div.known") // get the known div
    $afterText = $rows.next() //get the first element after the div
    $afterText.before(newElement); //insert your element before that
    
    没有检查如果文本后面没有元素会发生什么。在这种情况下,始终至少有一个

    解决方案: 使用
    .nextSibling

    用法:
    let text=$('.known')[0].nextSibling
    $(文本).after(“新元素”

    ”)
    演示:
    let text=$('.known')[0].nextSibling
    $(文本)。之后(“新元素”

    
    
  • ... 元素的文本 ... ...
  • 我忘了提到“元素的文本”每行都不同。但是谢谢你这么做,但是考虑到只有一个文本节点,如果没有
    &&this.textContent.includes(“元素的文本”)
    ,它就可以工作。顺便问一下,
    nodeType==3
    不是更好吗?这是一个整数,对吗?
    let text = $('.known')[0].nextSibling
    $(text).after('<p>New Element</p>')