尝试使用javascript填充按钮类的标记

时间:2016-07-25 17:20:50

标签: javascript jquery html

编辑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




demo

事实证明这比我想象的要复杂得多。

旧版块,请忽略我:

所以我尝试使用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中拉出链接并将其格式化为一个按钮。

事实证明这比我想象的要复杂得多。

2 个答案:

答案 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()

Demo

答案 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)

DEMO

如果你有多个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