我有一个函数,需要将一些变量附加到div。其中一个变量是与onclick的href链接。如何格式化链接以在函数中的var中工作?以下不起作用。
这样做的全部目的是
我已经拍了两段代码
1)修剪文本,并包裹在范围jquery limit text by length
2)点击显示,点击http://girlswhogeek.com/tutorials/2007/show-and-hide-elements-with-javascript
我正在尝试将它们混合起来以提出我需要的东西。每个代码段都可以自行运行。
这是我现在拥有的代码:
<script type="text/javascript">
function showStuff(id) {
document.getElementById(id).style.display = 'block';
}
function hideStuff(id) {
document.getElementById(id).style.display = 'none';
}
$(function() {
var limit = 200;
var chars = $("#myDiv").text();
if (chars.length > limit) {
var visiblePart = $("<div> "+ chars.substr(0, limit-1) + "</div>");
var readMore = $(<a href="#" onclick="showStuff('answer1'); return false;">open</a>);
var hiddenPart = $("<span id='answer1' style='display: none;'> " + chars.substr(limit-1) + "</span>");
var readLess = $(<a href=\"#\" onclick=\"hideStuff('answer1'); return false;\">close</a>);
});
$("#myDiv").empty()
.append(visiblePart)
.append(readMore)
.append(hiddenPart)
.append(readLess);
}
});
答案 0 :(得分:3)
如果你使用jQuery,那么一致地使用它。您上面遇到的最大错误是HTML不在字符串中,因此您将在JavaScript中遇到语法错误。
这是一个稍微改进的版本:
$(function() {
var limit = 200;
var chars = $('#myDiv').text();
if (chars.length > limit) {
var visiblePart = $('<div />').text(chars.substr(0, limit-1));
var readMore = $('<a />', {
href: '#',
click: function() {
hiddenPart.show();
return false;
},
text: 'open'
});
var hiddenPart = $('<span />', {text: chars.substr(limit-1)}).hide();
var readLess = $('<a />', {
href: '#',
click: function() {
hiddenPart.hide();
return false;
},
text: 'close'
});
$('#myDiv').empty()
.append(visiblePart)
.append(readMore)
.append(hiddenPart)
.append(readLess);
}
});
它还远没有完美,但可能会给你一个开始:http://jsfiddle.net/fkling/cXw5D/
答案 1 :(得分:0)