2013-12-21 39 views
-1

我这里有这个简单的例子:找到一个精确的孩子的父母,然后选择一个孩子用jQuery

<div class = "container"> 
    <div id = "jwplayer-0_wrapper"></div> 
    <script type="text/javascript"></script> 
</div> 

还等什么我的代码是应该做的是这么看用是否有一个div “jwplayer-0_wrapper”

if ($('#'+divId).length == 1) { 

然后我需要选择其直接父,去其子>脚本,并使其与.text(),以便能够使用一个变量里面的脚本内容的ID 。所以我被困在获取脚本内容的选择器问题上。也许还有另一种方法让脚本无法使用父级?他们将始终在同一个父分区内。

回答

1

我的第一个答案错了​​。选择div,然后导航到父级并选择“脚本”子级的文本。

$('#' + divId) 
    .parent() 
    .children('script') 
    .text(); 
+0

没有,becasue我不知道是什么的'

'是这里的父母的DIVID只是一个例子,但是我真的必须使它动态地围绕“jwplayer-0_wrapper” DIV –

+0

我控制添加这个'var scriptText = $('#'+ divId).parent()。children('script')。text();'它应该这样做? –

+0

当我按下提交按钮时,我看到了你的意思。 :)我编辑了我的答案。 –

2

试试这个为您的具体问题:

$('#' + divId).next().text() ; 
+0

不,这不做,因为我不知道

的父母的divId在这里只是一个例子,但我真的不得不让它动态控制围绕“jwplayer-0_wrapper”div –

+0

这实际上是可行的,因为你不需要知道父母元素的身份。 jQuery中的next()方法选择下一个兄弟元素。 –

+0

是Greg。当你知道目标元素是下一个兄弟时,简单易行的解决方案。 – ram

2

这应该抓住脚本标记的内部文本。

if ($('#'+divId).length == 1) { 
    var scriptNode = $('#'+divId).parent().find('script').text(); 
} 
+0

我得到undefined –

+1

你能确认divId是一个字符串设置为“jwplayer-0_wrapper”吗? –

+0

接受的答案工作得很好,但感谢您的帮助 –