【问题标题】:How to apply displayed text from one element to other using jquery如何使用 jquery 将显示的文本从一个元素应用到另一个元素
【发布时间】:2017-07-21 12:13:58
【问题描述】:

使用css 应用内容overflow: hidden 样式并使用jQuery 将文本渲染到span 元素。渲染文本正在显示我不想看到的实际文本。以下是我尝试的代码:

我想在#top-bar-user-name-display 元素中显示与#user-name-display 相同的文本。

如何使用简单的脚本来实现?

HTML:

$(document).ready(function() {
$('#top-bar-user-name-display').html($('#users-name-display').html());
});
#users-name-display {
  width: 150px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p id="users-name-display">Alexander Pierce sdfsdf sd fsd fsdf sdf sd</p>
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<span class="hidden-xs"><span id="top-bar-user-name-display"><!-- Name will be displayed from #users-name-display --></span></span>
</a>

当前 O/P:

亚历山大·皮尔斯...

亚历山大·皮尔斯 sdfsdf sd fsd fsdf sdf sd

预期 O/P:

亚历山大·皮尔斯...

亚历山大·皮尔斯...

【问题讨论】:

  • 在问题中显示相关代码。我们不应该仅仅为了查看您的问题而离开现场。也根本不清楚您要完成什么或您的具体问题是要实现什么。花点时间阅读How to Askminimal reproducible example
  • 看看我的回答是否符合您的要求
  • 我相信最好的方法是将元素CSS复制到#top-bar-user-name-display
  • @charlietfl 已编辑
  • @Proto 它不起作用,因为在我的实际代码中,我在 ul > li > a > [actual span is here] 中可用的代码中提到的跨度因此 CSS 样式被其他样式覆盖

标签: jquery css


【解决方案1】:

#users-name-display 显示 Alexander Pierce... 只是因为您已将 div 框架 width 设置为 150 像素。所以无法显示整个文本,因为您没有限制 div 宽度,所以在第二个您拥有整个文本。

您必须在您的 css 中将 #top-bar-user-name-display 宽度更改为 150。

试试这个代码

$(document).ready(function() {
$('#top-bar-user-name-display').html($('#users-name-display').html());
$('#top-bar-user-name-display').css("display","block");
});
#users-name-display, #top-bar-user-name-display {
  width: 150px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

#top-bar-user-name-display{
  display:none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<p id="users-name-display">Alexander Pierce sdfsdf sd fsd fsdf sdf sd</p>
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<span class="hidden-xs"><span id="top-bar-user-name-display"><!-- Name will be displayed from #users-name-display --></span></span>
</a>

【讨论】:

  • 您的代码运行良好,我刚刚更改为 $('#top-bar-user-name-display').css("display","inline-block"); 并完成......
【解决方案2】:

试试这个

$(document).ready(function() {
$('#top-bar-user-name-display').html($('#users-name-display').html());
});
.users-name-display{
  width: 150px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  display:block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p id="users-name-display" class="users-name-display">Alexander Pierce sdfsdf sd fsd fsdf sdf sd</p>
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<span class="hidden-xs"><span id="top-bar-user-name-display" class="users-name-display"><!-- Name will be displayed from #users-name-display --></span></span>
</a>

我添加了一个类作为 users-name-display

和显示块

【讨论】:

  • 立即更新检查
  • 感谢您的帮助,但仍未达到我的预期
  • 根据您的问题,这正是您想要的
  • @SourabhSomani 不幸的是,您的 sn-p 示例正在运行。但是当我申请我的实际代码时它不是......谢谢你的帮助。你的是最简单的。
  • 没关系 :) 我认为他正在使用 javascript 做同样的事情 :)
【解决方案3】:

将 id users-name-display 更改为类 users-name-display

为 p 标签和 span 赋予相同的类名

或者

使用下面的jquery代码

$(document).ready(function() {
	var showChar = 100;
	var ellipsestext = "...";
	$('.more').each(function() {
		var content = $(this).html();

		if(content.length > showChar) {

			var c = content.substr(0, showChar);
			var h = content.substr(showChar-1, content.length - showChar);

			var html = c + '<span class="moreellipses">' + ellipsestext+ '&nbsp;</span><span class="morecontent"><span>' + h + '</span>&nbsp;&nbsp;</span>';
      $('#top-bar-user-name-display').html(html);
			$(this).html(html);
		}

	});
});
a {
	color: #0254EB
}
a:visited {
	color: #0254EB
}
a.morelink {
	text-decoration:none;
	outline: none;
}
.morecontent span {
	display: none;
}
.comment {
	width: 400px;
	background-color: #f0f0f0;
	margin: 10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="comment more">
	Lorem ipsum dolor sit amet, consectetur adipiscing elit.
	Vestibulum laoreet, nunc eget laoreet sagittis,
	quam ligula sodales orci, congue imperdiet eros tortor ac lectus.
	Duis eget nisl orci. Aliquam mattis purus non mauris
	blandit id luctus felis convallis.
	Integer varius egestas vestibulum.
	Nullam a dolor arcu, ac tempor elit. Donec.
</div>
<span id="top-bar-user-name-display"><!-- Name will be displayed from #users-name-display --></span>

【讨论】:

  • @Syed Nizamudeen 检查一下。如果有任何疑问。告诉我。
猜你喜欢
  • 2011-01-21
  • 2011-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-30
  • 2011-11-29
  • 2013-09-14
相关资源
最近更新 更多