编辑3:我只是重新开始。
我无法发布两个链接,但我使用的主题是来自themeforest的Red Ink,而我正在处理的页面是投资组合页面,如果你想谷歌的话。
当您点击其中一个投资组合项目时,例如" True Gangsters"所有信息都从div中提取并插入上一节进行格式化。
我想要做的就是为这些项目组合项添加一个按钮,并能够从div中拉出链接并将其格式化为一个按钮。
在jsfiddle我包括格式化的div和"真正的流氓"格式化的div从中获取信息的部分。
我还包括了所有投资组合部分的javascript,但我非常确定这是重要的部分:
//Update text info
function updateText(current) {
var title = current.attr('data-title');
var desc = current.attr('data-description');
var date = current.attr('data-date');
controls.find('h2').html(title);
controls.find('p').html(desc);
controls.find('.date .day').html(date.split(',')[0]);
controls.find('.date .month').html(date.split(',')[1]);
controls.find('.date .year').html(date.split(',')[2]);
} //End Update text info

事实证明这比我想象的要复杂得多。
旧版块,请忽略我:
所以我尝试使用javascript从网页的另一部分获取一大块代码,然后将其插入另一部分以创建链接
<div class="button"></div>
<div class="getVid"
data-epdLink="CdDDY5nVA3A"
>
所以我想从getVid div中获取一段代码并将其作为链接放入按钮div中。
所以我有一点JavaScript:
var endLink = current.attr('data-epdLink');
var fullLink = '<a href="https://www.youtube.com/watch?v=' + endLink +'">"Click for Video"</a>';
controls.find('button').html(fullLink)
它似乎不起作用。我之前使用过这种类型的东西来插入标题和文字,但是我在想那些插入代码我必须做的事情。
有什么想法吗?
如果有帮助,这里有一个小提琴的链接:[JSFiddle] [3]
修改
忘记提到会有多个getVid类,所以它取决于我打开哪一个,每个数据-epdLink都不同。
修改2
好的,所以在我的新jsfiddle中你可以看到所有的格式都在html标签的vid项格式的顶部。接下来的两个项目使用javascript从vid格式化部分标记了vid项目拉取信息。此代码来自模板,因此我不完全确定发生了什么,但我在每个vid项目部分包含了更改图像的javascript,因为我认为我可以使用这些行中的内容更改按钮链接。你可以在vid格式化部分的两个表之后看到按钮div。
这里的新jsfiddle:[new js fiddle] [4]
编辑3:我只是重新开始。 首先,我使用[红色墨水模板] [1]
模板当您点击其中一个投资组合项目时,例如&#34; True Gangsters&#34;所有信息都从div中提取并插入上一节进行格式化。
我想要做的就是为这些项目组合项添加一个按钮,并能够从div中拉出链接并将其格式化为一个按钮。
事实证明这比我想象的要复杂得多。
答案 0 :(得分:1)
首先,您需要关闭class ViewController: UIViewController, UITextViewDelegate {
@IBOutlet weak var textView: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
let text = NSMutableAttributedString(string: "Already have an account? ")
text.addAttribute(NSFontAttributeName, value: UIFont.systemFontOfSize(12), range: NSMakeRange(0, text.length))
let selectablePart = NSMutableAttributedString(string: "Sign in!")
selectablePart.addAttribute(NSFontAttributeName, value: UIFont.systemFontOfSize(12), range: NSMakeRange(0, selectablePart.length))
// Add an underline to indicate this portion of text is selectable (optional)
selectablePart.addAttribute(NSUnderlineStyleAttributeName, value: 1, range: NSMakeRange(0,selectablePart.length))
selectablePart.addAttribute(NSUnderlineColorAttributeName, value: UIColor.blackColor(), range: NSMakeRange(0, selectablePart.length))
// Add an NSLinkAttributeName with a value of an url or anything else
selectablePart.addAttribute(NSLinkAttributeName, value: "signin", range: NSMakeRange(0,selectablePart.length))
// Combine the non-selectable string with the selectable string
text.appendAttributedString(selectablePart)
// Center the text (optional)
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.alignment = NSTextAlignment.Center
text.addAttribute(NSParagraphStyleAttributeName, value: paragraphStyle, range: NSMakeRange(0, text.length))
// To set the link text color (optional)
textView.linkTextAttributes = [NSForegroundColorAttributeName:UIColor.blackColor(), NSFontAttributeName: UIFont.systemFontOfSize(12)]
// Set the text view to contain the attributed text
textView.attributedText = text
// Disable editing, but enable selectable so that the link can be selected
textView.editable = false
textView.selectable = true
// Set the delegate in order to use textView(_:shouldInteractWithURL:inRange)
textView.delegate = self
}
func textView(textView: UITextView, shouldInteractWithURL URL: NSURL, inRange characterRange: NSRange) -> Bool {
// **Perform sign in action here**
return false
}
}
div。最佳做法是使用data()
方法访问.getVid
属性:
data-
您将获得小写字母,例如var endLink = current.data('epdlink');
var fullLink = '<a href="https://www.youtube.com/watch?v=' + endLink +'">"Click for Video"</a>';
controls.filter('.button').html(fullLink);
。我相信您的变量edplink
是html元素的集合,因此每当您必须搜索预先选定的集合时,请使用.filter()
。
答案 1 :(得分:0)
使用jquery .append()
使用.data()
代替.attr()
HTML
<div class="button"></div>
<div class="getVid"
data-epdLink="CdDDY5nVA3A"
>
<强> JS 强>
var endLink = $('.getVid').data('epdlink');
var fullLink = '<a href="https://www.youtube.com/watch?v=' + endLink +'">"Click for Video"</a>';
$('.button').append(fullLink)
如果你有多个div
$('.getVid').each(function(i, v){
var endLink = $(v).data('epdlink');
var fullLink = '<a href="https://www.youtube.com/watch?v=' + endLink +'">"Click for Video"</a>';
$(v).prev('.button').append(fullLink)
})
<强> DEMO 强>