Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.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 如何删除<;br>;然后呢?_Javascript_Jquery - Fatal编程技术网

Javascript 如何删除<;br>;然后呢?

Javascript 如何删除<;br>;然后呢?,javascript,jquery,Javascript,Jquery,如果我做了以下几点就可以了: <div id="results"> <p>Hello<br>there</p> </div> $($("#results p").children('br').get(0).nextSibling).remove(); 给我 未捕获的TypeError:无法读取未定义的属性“nextSibling” 这是因为.get(…)返回的是DOM元素,而不是jQuery对象。 在第一个示例中,您使用$(…)

如果我做了以下几点就可以了:

<div id="results">
  <p>Hello<br>there</p>
</div>

$($("#results p").children('br').get(0).nextSibling).remove();
给我

未捕获的TypeError:无法读取未定义的属性“nextSibling”

这是因为
.get(…)
返回的是DOM元素,而不是jQuery对象。 在第一个示例中,您使用
$(…)
将DOM元素转换为jQuery对象,但在第二个示例中您没有这样做

这将把DOM元素转换为jQuery元素并消除错误

var newLineRemove = $($(".infobox td").children('br').get(0).nextSibling);
但是它不会做你想让它做的事情,因为@Forty3说“这个
不在..信息框中”

这似乎可行,但我可能让事情变得更复杂了:

$(函数(){
var td=$(“.infobox”).next();
if(td.查找(“br”).长度){
$(td.contents().get().reverse()).each(function()){
$(this.remove();
如果(this.tagName==“BR”){
返回false;
}
});
}
})

你好
在吗
我有最简单的解决方案,试试这个:

$('td')。每个(函数(){
$(this.html($(this.html().split(“
”)[0]); });
li{
边缘底部:10px;
}
#usp-custom-3{
显示:无;
}

赫尔

那里 你好
那里
那里
您的代码不起作用,因为.infobox td“
选择器正在
.infobox
元素中查找td元素,但在HTML中,td紧跟在
.infobox
之后

如果您希望使用与现有JS非常相似的HTML(注意td和th元素需要位于表中的tr中),您可以这样做:

$($(“.infobox”).next().children(“br”)[0].nextSibling.remove()

你好
在吗
是因为
不在.infobox中,因此您的选择器
$(“.infobox td”)
没有返回任何内容,因此您对
的调用也不会返回任何内容。@Forty3您看到了错误,但我不会更改问题,因为有两个错误,一个是您提到的错误,另一个更好的解释是在下面的答案之一
$($(“.infobox”).next(“td”).children(“br”)[0].nextSibling.remove()
@nnnnnn不,你有一个错误),所以删除额外的
,这不是火箭科学(我已经编辑了我的评论)。你的提琴在那之后就不起作用了,因为你把TD和TH放在一张桌子外面,所以浏览器不把它们当作TD和TH——把它们放在一张有TR的桌子里,它就起作用了:我明白了,你能不能也提供一个编码解决方案,供将来参考,我会接受的,请?Thanks@rob.m什么是
$wikiDOM
?它只是我定义的一个变量
var wikiHTML=data.parse.text[“*”];var$wikiDOM=$(“”+wikiHTML+“”)使用
.eq()
而不是
.get()
包装在
$()
中会更整洁。另外,
.nextSibling()
应该是
.next()
。请参阅此提琴,并注意td不是您前面提到的infobox的子项,请注意,这将使用第一行的值覆盖所有行。(将第二行更改为“Hi”而不是“Hello”以了解我的意思。)您可以通过执行类似于
$(“td”).html(函数(I,h){return h.split('
'))[0]}的操作来解决这个问题。
var newLineRemove = $($(".infobox td").children('br').get(0).nextSibling);