您好我尝试从这样的表格中获取一个值:
function getValueFromSibling(this) {
var id = $(this).parent().siblings('span.childSibbling');
}
表格如下:
<tr>
<td>
<button type="button" onClick="getValueFromSibling()"></button>
</td>
<td>
<span class="childSibbling">100</span>
</td>
</tr>
但我收到这样的话:
id = r.fn.init [prevObject: r.fn.init(1)]
我发现这是一种简单的形式:
var jQuery = function( selector, context ){
return new jQuery.fn.init( selector, context );
};
所以有问题。如何从InnerHTML
接收<span>
,或如何将r.fn.init [prevObject: r.fn.init(1)]
转换为价值?
var result = id.val();
和var result = id.get();
无法正常工作
答案 0 :(得分:4)
首先,函数this
中的getValueFromSibling
在调用函数时位于窗口范围传递this
上下文中
onClick="getValueFromSibling(this)"
除了text()
之外,很少有东西可以找到你想要的文字。试试下面的一个
更好的方式(实际推荐方式):
HTML
<tr>
<td>
<button type="button" class="some-button"></button>
</td>
<td>
<span class="sibbling">100</span>
</td>
</tr>
Jquery的
$(function(){
$('.some-button').click(function(){
var id = $(this).closest('tr').find('.sibbling').text();
// .closest() gets the closest tr parent .
// .find() finds the element with class 'sibbling' inside that `tr`
// .text() gets the text inside the element.
});
});
答案 1 :(得分:1)
您应该可以使用
获取文本值$("selector").text();
答案 2 :(得分:1)
你面临的问题是你不想要一个兄弟姐妹,你想要一个兄弟姐妹的孩子。
function getValueFromSibling(me) {
var id = $(me).parent().next().find('span.childSibbling').text();
console.log(id);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
<table>
<tr>
<td>
<button type="button" onClick="getValueFromSibling(this)"></button>
</td>
<td>
<span class="childSibbling">100</span>
</td>
</tr>
</table>
</body>
有了这个,首先我们做.parent()
来移动td
元素。然后,我们使用td
移动下一个.next()
元素,最后使用span.childSibbling
恢复find('span.childSibbling')
。
使用方法.text()
恢复节点的innerText
或.html()
以获取节点的innerHTML。
对于r.fn.init
问题,this questio n中有一个很好的答案。